JSPM

time-limit-promise

1.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 221315
  • Score
    100M100P100Q177332F
  • License MIT

Fulfill long runinng promises on timeout.

Package Exports

  • time-limit-promise

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (time-limit-promise) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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)