vue-blocklink
Version:
Vue support for the Blockchain Link browser extension
39 lines (38 loc) • 986 B
JavaScript
export const intervalUtils = {
setAsyncExcludingInterval(fn, intervalMs, onError) {
let isLocked = false;
const intervalId = setInterval(async () => {
if (isLocked) {
return;
}
else {
isLocked = true;
try {
await fn();
}
catch (err) {
onError(err);
}
isLocked = false;
}
}, intervalMs);
return intervalId;
},
clearAsyncExcludingInterval(intervalId) {
clearInterval(intervalId);
},
setInterval(fn, intervalMs, onError) {
const intervalId = setInterval(() => {
try {
fn();
}
catch (err) {
onError(err);
}
}, intervalMs);
return intervalId;
},
clearInterval(intervalId) {
clearInterval(intervalId);
},
};