UNPKG

1.44 kBJavaScriptView Raw
1async function t(t=0){return new Promise(i=>{("number"==typeof t?+t:0)<1?i():setTimeout(i,t)})}class PollingMeasure{constructor(t,i,s){this.name=t,this.duration=i,this.startTime=s,this.entryType="polling-measure"}toJSON(){return{duration:this.duration,entryType:this.entryType,name:this.name,startTime:this.startTime}}}function i(t){return"function"==typeof t.then}class PollingObserver{constructor(t){if(this.conditionCallback=t,this.t=!1,this.i=[],this.s=!1,"function"!=typeof t)throw new TypeError("'conditionCallback' is not defined")}disconnect(){this.t=!0,this.s||(this.i=[])}async observe(s,n){this.t=!1;const{interval:e,timeout:o}=n||{},r="number"==typeof e&&e>0,h="number"==typeof o?+o:-1,a=r?+e:-1,c=await async function(){return("undefined"!=typeof window?window:global).performance}(),u=h<1,f=this.i,l=this.onfinish,y=this.conditionCallback;let p=0,d=void 0,w=0,m="finish",b={};try{t:for(;!this.t;){this.s=!0;const n=y(d,f,this),e=i(n)?await n:n,o=!u&&p>=h;if(o||e){m=o?"timeout":m;break t}const l=c.now(),b=s();d=i(b)?await b:b;const v=c.now()-l,T=r?a-v:0;f.push(new PollingMeasure(`polling:${w}`,v,l)),p+=v>a?v:a,w+=1,T>0&&await t(T)}b={status:m,value:d}}catch(v){b={status:"error",reason:v}}finally{const t=f.slice();this.t&&(this.i=[]),this.s=this.t=!1,"function"==typeof l&&l(b,t,this)}}takeRecords(){return this.i}}export default PollingObserver;export{PollingObserver};
2//# sourceMappingURL=polling-observer.min.js.map