0.1.2 • Published 8 years ago
wait-then v0.1.2
wait-then
Utility function that returns a promise that resolves after x ms
npm install --save wait-then
Can be awaited in async functions, or as a yieldable with co or in koa.
Basic example:
const wait = require('wait-then'),
timeout = wait.timeout;
wait(2000).then(function() {
console.log('This is logged after 2 seconds');
});
timeout(2000).catch(e) {
console.log('This is logged after 2 seconds');
};
Example with Promise.race
for simple timeouts:
const timeout = require('wait-then').timeout;
async function getData(key) {
try {
await Promise.race(dataLoader(key), timeout(1000));
} catch (e) {
console.error(e);
}
}
Basic example with async function
and await
:
const wait = require('wait-then'),
timeout = wait.timeout;
(async function () {
await wait(1000);
console.log('This is logged after 1 second');
})();
(async function () {
try {
await timeout(1000);
} catch (e) {
console.log('This is logged after 1 second');
}
})();
Basic example with co
:
const wait = require('wait-then'),
timeout = wait.timeout,
co = require('co');
co(function *() {
yield wait(1000);
console.log('This is logged after 1 second');
});
co(function *() {
try {
yield timeout(1000);
} catch (e) {
console.log('This is logged after 1 second');
}
});
The generator function passed into co
can be yielded in a middleware in koa
.
Note: This relies on the existence of a global Promise
object as defined in the ECMAScript 6 (Harmony) proposal.
How this differs from co-sleep
and co-wait
is that both of them use thunks, support for which is set to be deprecated. wait-then
instead uses Promises, which are also yieldable.