What is p-wait-for?
The p-wait-for npm package is a utility that allows you to wait for a condition to be met before proceeding with the execution of your code. It is particularly useful for scenarios where you need to poll for a certain state or condition to be true before continuing.
What are p-wait-for's main functionalities?
Basic Usage
This feature allows you to wait for a basic asynchronous condition to be met. The `pWaitFor` function takes a condition function that returns a promise, and it resolves when the condition returns true.
const pWaitFor = require('p-wait-for');
const condition = async () => {
// Some asynchronous condition
return await someAsyncCheck();
};
(async () => {
await pWaitFor(condition);
console.log('Condition met!');
})();
Timeout
This feature allows you to specify a timeout for the condition to be met. If the condition is not met within the specified timeout, an error is thrown.
const pWaitFor = require('p-wait-for');
const condition = async () => {
// Some asynchronous condition
return await someAsyncCheck();
};
(async () => {
try {
await pWaitFor(condition, { timeout: 5000 });
console.log('Condition met within timeout!');
} catch (error) {
console.error('Condition not met within timeout');
}
})();
Interval
This feature allows you to specify an interval at which the condition function is called. This can be useful to reduce the frequency of checks and avoid overwhelming the system.
const pWaitFor = require('p-wait-for');
const condition = async () => {
// Some asynchronous condition
return await someAsyncCheck();
};
(async () => {
await pWaitFor(condition, { interval: 1000 });
console.log('Condition met!');
})();
Other packages similar to p-wait-for
await-poll
The await-poll package provides similar functionality by allowing you to poll for a condition to be met. It offers a simple API for waiting for a condition with customizable intervals and timeouts. Compared to p-wait-for, await-poll has a more straightforward API but may lack some of the advanced options.
promise-poller
The promise-poller package is another alternative that allows you to poll for a condition to be met. It provides more advanced options such as retries, delays, and custom error handling. Compared to p-wait-for, promise-poller offers more flexibility and customization options.
p-wait-for
Wait for a condition to be true
Can be useful for polling.
Install
$ npm install p-wait-for
Usage
const pWaitFor = require('p-wait-for');
const pathExists = require('path-exists');
(async () => {
await pWaitFor(() => pathExists('unicorn.png'));
console.log('Yay! The file now exists.');
})();
API
pWaitFor(condition, [options])
Returns a Promise
that resolves when condition
returns true
. Rejects if condition
throws or returns a Promise
that rejects.
condition
Type: Function
Expected to return Promise<boolean> | boolean
.
options
Type: Object
interval
Type: number
Default: 20
Number of milliseconds to wait before retrying condition
.
timeout
Type: number
Default: Infinity
Number of milliseconds to wait before automatically rejecting.
Related
- p-whilst - Calls a function repeatedly while a condition returns true and then resolves the promise
- More…
License
MIT © Sindre Sorhus