JSDoc: Namespace: wait

# Namespace: wait

## wait

Poll-waiting utilities.

Source:
  - wait.js, line 21

### 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` | Condition |  | 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:
  - wait.js, line 87

##### Throws:

If |func| throws, its error is propagated.

Type
  *

##### Returns:

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

Type
  Promise.<*>