Skip to content

Utility function that returns a promise that resolves after x ms

Notifications You must be signed in to change notification settings

kunalgolani/wait-then

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Utility function that returns a promise that resolves after x ms

Resources

Stars

Watchers

Forks

Packages

No packages published