$ gnpm install 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 */
}
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>.
Copyright 2013 - present © cnpmjs.org | Home |