Methods
(static) until(func, timeoutopt, intervalopt) → {Promise.<*>}
Runs a promise-like function off the main thread until it is resolved through |resolve| or |rejected| callbacks. The function is guaranteed to be run at least once, irregardless of the timeout.
The |func| is evaluated every |interval| for as long as its runtime duration does not exceed |interval|. Evaluations occur sequentially, meaning that evaluations of |func| are queued if the runtime evaluation duration of |func| is greater than |interval|.
|func| is given two arguments, |resolve| and |reject|, of which one must be called for the evaluation to complete. Calling |resolve| with an argument indicates that the expected wait condition was met and will return the passed value to the caller. Conversely, calling |reject| will evaluate |func| again until the |timeout| duration has elapsed or |func| throws. The passed value to |reject| will also be returned to the caller once the wait has expired.
Usage:
let els = wait.until((resolve, reject) => {
let res = document.querySelectorAll("p");
if (res.length > 0) {
resolve(Array.from(res));
} else {
reject([]);
}
});
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
func |
WaitCondition | Function to run off the main thread. |
|
timeout |
number |
<optional> |
Desired timeout. If 0 or less than the runtime evaluation time of |func|, |func| is guaranteed to run at least once. The default is 2000 milliseconds. |
interval |
number |
<optional> |
Duration between each poll of |func| in milliseconds. Defaults to 10 milliseconds. |
Throws:
-
If |func| throws, its error is propagated.
- Type
- *
Returns:
Yields the value passed to |func|'s |resolve| or |reject| callbacks.
- Type
- Promise.<*>