1 | var _require = require('./AbortController'),
|
2 | createAbortError = _require.createAbortError;
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | module.exports = function delay(ms, opts) {
|
13 | return new Promise(function (resolve, reject) {
|
14 | if (opts && opts.signal && opts.signal.aborted) {
|
15 | return reject(createAbortError());
|
16 | }
|
17 |
|
18 | function onabort() {
|
19 | clearTimeout(timeout);
|
20 | cleanup();
|
21 | reject(createAbortError());
|
22 | }
|
23 |
|
24 | var timeout = setTimeout(function () {
|
25 | cleanup();
|
26 | resolve();
|
27 | }, ms);
|
28 |
|
29 | if (opts && opts.signal) {
|
30 | opts.signal.addEventListener('abort', onabort);
|
31 | }
|
32 |
|
33 | function cleanup() {
|
34 | if (opts && opts.signal) {
|
35 | opts.signal.removeEventListener('abort', onabort);
|
36 | }
|
37 | }
|
38 | });
|
39 | }; |
\ | No newline at end of file |