wait-then

0.1.2 • Public • Published

wait-then

GitHub version NPM Version Coverage Status

Deps Dev Deps Peer Deps

NPM Downloads GitHub stars GitHub forks GitHub issues

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.

Package Sidebar

Install

npm i wait-then

Weekly Downloads

5

Version

0.1.2

License

ISC

Last publish

Collaborators

  • kunalgolani