MCPcopy Index your code
hub / github.com/caolan/async / timeout

Function timeout

lib/timeout.js:45–75  ·  view source on GitHub ↗
(asyncFn, milliseconds, info)

Source from the content-addressed store, hash-verified

43 * });
44 */
45export default function timeout(asyncFn, milliseconds, info) {
46 var originalCallback, timer;
47 var timedOut = false;
48
49 function injectedCallback() {
50 if (!timedOut) {
51 originalCallback.apply(null, arguments);
52 clearTimeout(timer);
53 }
54 }
55
56 function timeoutCallback() {
57 var name = asyncFn.name || 'anonymous';
58 var error = new Error('Callback function "' + name + '" timed out.');
59 error.code = 'ETIMEDOUT';
60 if (info) {
61 error.info = info;
62 }
63 timedOut = true;
64 originalCallback(error);
65 }
66
67 var fn = wrapAsync(asyncFn);
68
69 return initialParams(function (args, origCallback) {
70 originalCallback = origCallback;
71 // setup timer and call original function
72 timer = setTimeout(timeoutCallback, milliseconds);
73 fn.apply(null, args.concat(injectedCallback));
74 });
75}

Callers

nothing calls this directly

Calls 1

wrapAsyncFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…