race-timeout-anywhere
v2.0.0
Published
A Promise.race timeout function which can be used with any module loader
Downloads
330
Maintainers
Readme
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 <[email protected]>.