MCPcopy
hub / github.com/webpack/tapable / gainResult

Method gainResult

test/HookTester.test.js:1264–1316  ·  view source on GitHub ↗
(fn)

Source from the content-addressed store, hash-verified

1262 }
1263
1264 gainResult(fn) {
1265 return Promise.race([
1266 new Promise((resolve) => {
1267 try {
1268 const ret = fn((err, result) => {
1269 if (err) {
1270 resolve({
1271 type: "async",
1272 error: err.message
1273 });
1274 } else {
1275 resolve({
1276 type: "async",
1277 value: result
1278 });
1279 }
1280 });
1281 if (ret instanceof Promise) {
1282 resolve(
1283 ret.then(
1284 (res) => ({
1285 type: "promise",
1286 value: res
1287 }),
1288 (err) => ({
1289 type: "promise",
1290 error: err.message
1291 })
1292 )
1293 );
1294 } else if (ret !== undefined) {
1295 resolve({
1296 type: "return",
1297 value: ret
1298 });
1299 }
1300 } catch (err) {
1301 resolve({
1302 error: err.message
1303 });
1304 }
1305 }),
1306 new Promise((resolve) => {
1307 setTimeout(
1308 () =>
1309 resolve({
1310 type: "no result"
1311 }),
1312 1000
1313 );
1314 })
1315 ]);
1316 }
1317
1318 createHook(args, name) {
1319 try {

Callers 5

runForLoopAsyncMethod · 0.95
runForLoopSyncMethod · 0.95
runSyncMethod · 0.95
runAsyncMethod · 0.95
runInterceptMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected