delay
Delay a promise a specified amount of time
Install
$ npm install --save @gradecam/delay
Usage
import delay from '@gradecam/delay';
delay(200)
.then(() => {
});
delay(100, 'a result')
.then(result => {
});
Advanced usage
import * as assert from 'assert';
import { delay } from '@gradecam/delay';
(async () => {
bar();
await delay.resolve(100);
baz();
})();
delay.reject(100, 'foo'))
.then(x => blah())
.catch(err => {
});
(async () => {
const delayedPromise = delay.resolve(1000);
setTimeout(() => {
delayedPromise.clear();
}, 500);
await delayedPromise;
})();
(async () => {
const delayedPromise = delay.resolve(1000, 'Successfully delayed.');
setTimeout(() => {
delayedPromise.clear(new Error('cancelled'));
});
try {
await delayedPromise;
assert.fail('should have rejected the promise.');
} catch (err) {
assert.equal(err.message, 'cancelled');
}
})();
API
delay.resolve(ms, [value])
Create a promise which resolves after the specified ms
. Optionally pass a
value
to resolve. For convienience this method is also the default export.
delay.reject(ms, [value])
Create a promise which rejects after the specified ms
. Optionally pass a
value
to reject.
ms
Type: number
Milliseconds to delay the promise.
value
Type: any
Value to resolve or reject in the returned promise.
promise#clear([err])
Settle the promise prior to specified delay. If err
is specified reject
instead of settling normally.
err
Type: Error
Reason for cancelling the delay prematurely.
Related
- delay - module upon which this is based
- delay-cli - CLI for the original delay module
- p-min-delay - Delay a promise a minimum amount of time
- p-immediate - Returns a promise resolved in the next event loop - think
setImmediate()
- p-timeout - Timeout a promise after a specified amount of time
- More…
License
MIT © GradeCam