(cond: () => boolean, interval: number, timeout: number)
| 1 | export const waitFor = async (cond: () => boolean, interval: number, timeout: number): Promise<boolean> => { |
| 2 | if (cond()) { |
| 3 | return Promise.resolve(true) |
| 4 | } |
| 5 | const start = Date.now() |
| 6 | return new Promise((resolve, reject) => { |
| 7 | const inter = setInterval(() => { |
| 8 | if (cond()) { |
| 9 | clearInterval(inter) |
| 10 | resolve(true) |
| 11 | } |
| 12 | if (Date.now() - start > timeout) { |
| 13 | clearInterval(inter) |
| 14 | reject("timeout") |
| 15 | } |
| 16 | }, interval) |
| 17 | }) |
| 18 | } |
no test coverage detected