@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 981 B
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import e from"../../../../request.js";import{removeMaybe as t,abortMaybe as r}from"../../../../core/maybe.js";import{onAbortOrThrow as o}from"../../../../core/promiseUtils.js";import{isRequestQueueFull as s,queueAutoPriority as a}from"../../../../request/queue.js";class l{constructor(e,t){this._customParameters=e,this._apiKey=t,this._activeRequests=new Set}isFull(e){return s(e)}request(r,s,l){const i=new AbortController,n=o(l,()=>i.abort()),u={...a,signal:i.signal,responseType:s,query:{...this._customParameters,token:this._apiKey}},c=e(r,u),m={abortController:i,abortHandle:n};return this._activeRequests.add(m),c.then(({data:e})=>e).finally(()=>{m.abortController=null,m.abortHandle=t(m.abortHandle),this._activeRequests.delete(m)})}cancelAll(){this._activeRequests.forEach(e=>{e.abortController=r(e.abortController),e.abortHandle=t(e.abortHandle)}),this._activeRequests.clear()}}export{l as I3SDataRequester};