This repository has been archived on 2020-04-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Vim-Vixen/e2e/eventually.js
2019-04-06 22:39:40 +09:00

23 lines
543 B
JavaScript

let defaultInterval = 100;
let defaultTimeout = 2000;
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const eventually = async (fn, timeout = defaultTimeout, interval = defaultInterval) => {
let start = Date.now();
let loop = async() => {
try {
await fn();
} catch (err) {
if (Date.now() - start > timeout) {
throw err;
}
await new Promise((resolve) => setTimeout(resolve, interval))
await loop();
}
};
await loop();
};
module.exports = eventually;