Wait for a condition to be true
Can be useful for polling.
npm install p-wait-for
import pWaitFor from 'p-wait-for';
import {pathExists} from 'path-exists';
await pWaitFor(() => pathExists('unicorn.png'));
console.log('Yay! The file now exists.');
Returns a Promise
that resolves when condition
returns true
. Rejects if condition
throws or returns a Promise
that rejects.
Type: Function
Expected to return Promise<boolean> | boolean
.
Type: object
Type: number
Default: 20
Number of milliseconds to wait after condition
resolves to false
before calling it again.
Type: number
Default: Infinity
Number of milliseconds to wait before automatically rejecting with a TimeoutError
.
Type: boolean
Default: true
Whether to run the check immediately rather than starting by waiting interval
milliseconds.
Useful for when the check, if run immediately, would likely return false
. In this scenario, set before
to false
.
Resolve the main promise with a custom value.
import pWaitFor from 'p-wait-for';
import pathExists from 'path-exists';
const path = await pWaitFor(async () => {
const path = getPath();
return await pathExists(path) && pWaitFor.resolveWith(path);
});
console.log(path);
Exposed for instance checking.