wait-then



Utility function that returns a promise that resolves after x ms
Can be used as a yieldable with co or in koa.
Basic example:
var 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 co
:
var 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.