MCPcopy Create free account
hub / github.com/DavidWells/analytics / waitForReady

Function waitForReady

packages/analytics-core/src/utils/waitForReady.js:8–22  ·  view source on GitHub ↗
(data, predicate, timeout)

Source from the content-addressed store, hash-verified

6 * @return {Promise}
7 */
8export default function waitForReady(data, predicate, timeout) {
9 return new Promise((resolve, reject) => {
10 if (predicate()) {
11 return resolve(data)
12 }
13 // Timeout. Add to queue
14 if (timeout < 1) {
15 return reject({ ...data, queue: true }) // eslint-disable-line
16 }
17 // Else recursive retry
18 return pause(10).then(_ => {
19 return waitForReady(data, predicate, timeout - 10).then(resolve, reject)
20 })
21 })
22}
23
24function pause(ms) {
25 return new Promise(resolve => setTimeout(resolve, ms))

Callers 1

pluginMiddlewareFunction · 0.85

Calls 2

resolveFunction · 0.85
pauseFunction · 0.85

Tested by

no test coverage detected