24 lines
567 B
Plaintext
24 lines
567 B
Plaintext
/**
|
|
* Copyright (c) 2019, Microsoft Corporation (MIT License).
|
|
*/
|
|
|
|
export function pollUntil(cb: () => boolean, timeout: number, interval: number): Promise<void> {
|
|
return new Promise<void>((resolve, reject) => {
|
|
const intervalId = setInterval(() => {
|
|
if (cb()) {
|
|
clearInterval(intervalId);
|
|
clearTimeout(timeoutId);
|
|
resolve();
|
|
}
|
|
}, interval);
|
|
const timeoutId = setTimeout(() => {
|
|
clearInterval(intervalId);
|
|
if (cb()) {
|
|
resolve();
|
|
} else {
|
|
reject();
|
|
}
|
|
}, timeout);
|
|
});
|
|
}
|