Namespace: wait

wait

Poll-waiting utilities.

Source:

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.

Source:
Throws:

If |func| throws, its error is propagated.

Type
*
Returns:

Yields the value passed to |func|'s |resolve| or |reject| callbacks.

Type
Promise.<*>