|
@@ -55,6 +55,14 @@ class FileLoader extends Loader {
|
|
|
*/
|
|
*/
|
|
|
this.responseType = '';
|
|
this.responseType = '';
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Used for aborting requests.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @private
|
|
|
|
|
+ * @type {AbortController}
|
|
|
|
|
+ */
|
|
|
|
|
+ this._abortController = new AbortController();
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -121,7 +129,7 @@ class FileLoader extends Loader {
|
|
|
const req = new Request( url, {
|
|
const req = new Request( url, {
|
|
|
headers: new Headers( this.requestHeader ),
|
|
headers: new Headers( this.requestHeader ),
|
|
|
credentials: this.withCredentials ? 'include' : 'same-origin',
|
|
credentials: this.withCredentials ? 'include' : 'same-origin',
|
|
|
- // An abort controller could be added within a future PR
|
|
|
|
|
|
|
+ signal: ( typeof AbortSignal.any === 'function' ) ? AbortSignal.any( [ this._abortController.signal, this.manager.abortController.signal ] ) : this._abortController.signal
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
// record states ( avoid data race )
|
|
// record states ( avoid data race )
|
|
@@ -338,6 +346,20 @@ class FileLoader extends Loader {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * Aborts ongoing fetch requests.
|
|
|
|
|
+ *
|
|
|
|
|
+ * @return {FileLoader} A reference to this instance.
|
|
|
|
|
+ */
|
|
|
|
|
+ abort() {
|
|
|
|
|
+
|
|
|
|
|
+ this._abortController.abort();
|
|
|
|
|
+ this._abortController = new AbortController();
|
|
|
|
|
+
|
|
|
|
|
+ return this;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|