@test-runner/web
Version:
54 lines (37 loc) • 2.02 kB
Markdown
[](https://www.npmjs.org/package/race-timeout-anywhere)
[](https://www.npmjs.org/package/race-timeout-anywhere)
[](https://github.com/75lb/race-timeout-anywhere/network/dependents?dependent_type=REPOSITORY)
[](https://github.com/75lb/race-timeout-anywhere/network/dependents?dependent_type=PACKAGE)
[](https://travis-ci.org/75lb/race-timeout-anywhere)
[](https://github.com/feross/standard)
# 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.
```js
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:
```js
const raceTimeout = require('race-timeout-anywhere')
```
ECMAScript Module:
```js
import raceTimeout from 'rice-timeout-anywhere'
```
Within a modern browser ECMAScript Module:
```js
import raceTimeout from './node_modules/rice-timeout-anywhere/index.mjs'
```
* * *
© 2018-21 Lloyd Brookes \<75pound@gmail.com\>.