Skip to content

75lb/race-timeout-anywhere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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>.

About

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

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published