race-timeout-anywhere

2.0.0 • Public • Published

view on npm npm module downloads Gihub repo dependents Gihub package dependents Build Status js-standard-style

race-timeout-anywhere

An isomorphic, load-anywhere timeout function for use with Promise.race.

The raceTimeout function never resolves, it will only reject once the specified time period has elapsed. In the example below, fetchDataSomehow() must resolve before raceTimeout rejects after 1000ms, else a timeout exception is thrown.

import raceTimeout from 'race-timeout-anywhere'

try {
  const data = await Promise.race([
    fetchDataSomehow(),
    raceTimeout(1000)
  ])
  /* fetchDataSomehow() took less than 1000ms, process data */
} catch (err) {
  /* fetchDataSomehow() took longer than 1000ms */
}

Load anywhere

This library is compatible with Node.js, the Web and any style of module loader. It can be loaded anywhere, natively without transpilation.

CommonJS:

const raceTimeout = require('race-timeout-anywhere')

ECMAScript Module:

import raceTimeout from 'rice-timeout-anywhere'

Within a modern browser ECMAScript Module:

import raceTimeout from './node_modules/rice-timeout-anywhere/index.mjs'

© 2018-21 Lloyd Brookes <75pound@gmail.com>.

Package Sidebar

Install

npm i race-timeout-anywhere

Weekly Downloads

60

Version

2.0.0

License

MIT

Unpacked Size

4.49 kB

Total Files

5

Last publish

Collaborators

  • 75lb