()
| 88 | return new Promise((resolve, reject) => { |
| 89 | const started = Date.now(); |
| 90 | const tick = () => { |
| 91 | const hit = events.find(predicate); |
| 92 | if (hit) return resolve(hit); |
| 93 | if (Date.now() - started > timeoutMs) { |
| 94 | return reject(new Error(`Timed out waiting for predicate. Events: ${JSON.stringify(events)}`)); |
| 95 | } |
| 96 | setTimeout(tick, 20); |
| 97 | }; |
| 98 | tick(); |
| 99 | }); |
| 100 | } |