UNPKG

@livelybone/promise-wait

Version:

A lib with some method about wait apis, including wait, waitUntil

10 lines (8 loc) 1.25 kB
/** * Bundle of @livelybone/promise-wait * Generated: 2025-11-26 * Version: 1.3.1 * License: MIT * Author: 2631541504@qq.com */ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).PromiseWait={})})(this,function(e){function m(){var n={resolve:function(e){},reject:function(e){}},e=new Promise(function(e,t){n.resolve=e,n.reject=t});return Object.assign(e,n)}e.ejectPromise=m,e.wait=function(e){var t=m(),n=setTimeout(t.resolve,e);return Object.assign(t,{stop:function(){return clearTimeout(n)}})},e.waitUntil=function(e,t){function n(){var t=Date.now()-a;f+=1,Promise.resolve().then(function(){return e({count:f,passedTime:t})}).then(function(e){e?(r.resolve(e),clearTimeout(l)):t<u&&(i=setTimeout(n,s))}).catch(function(e){clearTimeout(i),r.reject(e)})}var o,i,r=m(),u=null!=(o=null==t?void 0:t.timeout)?o:1e4,c=new Error("waitUntil: timeout"),l=setTimeout(function(){return clearTimeout(i),null!=t&&t.resolveTimeout?r.resolve({timeout:!0}):r.reject(c)},u),s=null!=(o=null==t?void 0:t.interval)?o:50,a=Date.now(),f=0;return n(),Object.assign(r,{cancel:function(){return clearTimeout(i)}})},Object.defineProperty(e,"__esModule",{value:!0})});