UNPKG

set-delayed-interval

Version:

An asynchronous setInterval that is properly delayed using promises and can be delayed on boot

1 lines 1.66 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SetDelayedInterval=t():e.SetDelayedInterval=t()}(self,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";const r=new Map;e.exports={setDelayedInterval:function(e,t,n){n=n||t;const o=`${Date.now()}:${Math.floor(1e6*Math.random())}`,u=setTimeout(()=>{!async function(e,t,n){for(;r.get(n);){try{await e()}catch(o){setTimeout(()=>{throw o},1);break}if(!r.get(n))break;await new Promise(e=>{const o=setTimeout(e,t);r.set(n,o)})}}(e,t,o)},n);return r.set(o,u),o},clearDelayedInterval:function(e){const t=r.get(e);t&&(clearTimeout(t),r.delete(e))}}}])}));