@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 935 B
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{onAbortOrThrow as e,always as t}from"../../../../core/promiseUtils.js";class r{constructor(e,t,r){this._requester=e,this._customParameters=t,this._apiKey=r,this._activeRequests=new Set}get busy(){return this._requester.busy}request(r,s,o){const a=new AbortController,l=e(o,(()=>a.abort())),i={signal:a.signal,query:{...this._customParameters,token:this._apiKey}},n=this._requester.request(r,s,i),u={response:n,abortController:a,abortHandle:l};return this._activeRequests.add(u),t(n,(()=>{u.abortController=null,u.abortHandle?.remove(),u.abortHandle=null,this._activeRequests.delete(u)})),n}cancelAll(){this._activeRequests.forEach((e=>{e.abortController?.abort(),e.abortController=null,e.abortHandle?.remove()})),this._activeRequests.clear()}}export{r as I3SStreamDataController};