time-limit-promise
Fulfill long runinng promises on timeout.
Last updated 2 years ago by inikulin .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install time-limit-promise 
SYNC missed versions from official npm registry.

time-limit-promise

Build Status

Fulfill long runinng promises on timeout.

Unlike other implementations on npm it has some nice extra features:

  • You can both reject and resolve promises on timeout
  • You can provide custom value with which promise will be rejected or resolved on timeout
  • Unrefs promise timer, so it will not block your app from exit.
  • Uses Promise implementation of the passed promise: no external implementation dependencies, no global Promise dependencies

Install

npm install time-limit-promise

Usage

const timeLimit = require('time-limit-promise');
const fetch     = require('node-fetch');

var fetchPromise = fetch('https://github.com/inikulin');

timeLimit(fetchPromise, 50).then(res => {
    // If `fetchPromise` will be fulfilled within 50ms
    // time limited promise will be fullfilled as well.
    // Otherwise, it will be resolved with the `undefined` value.
});

timeLimit(fetchPromise, 50, { resolveWith: 'no content' }).then(res => {
    // Same as above, but on timeout it will
    // be resolved with the `no-content` value.
    console.log(res); // > no-content
});


timeLimit(fetchPromise, 50, { rejectWith: new Error('timeout') }).catch(err => {
    // Same as above, but on timeout it will
    // be rejected with the provided error.
    console.log(err.message); // > timeout
});

Author

Ivan Nikulin (ifaaan@gmail.com)

Current Tags

  • 1.0.4                                ...           latest (2 years ago)

5 Versions

  • 1.0.4                                ...           2 years ago
  • 1.0.3                                ...           2 years ago
  • 1.0.2                                ...           5 years ago
  • 1.0.1                                ...           5 years ago
  • 1.0.0                                ...           5 years ago

Copyright 2014 - 2017 © taobao.org |