@microsoft/signalr
Version:
ASP.NET Core SignalR Client
39 lines (32 loc) • 1.22 kB
text/typescript
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController
// We don't actually ever use the API being polyfilled, we always use the polyfill because
// it's a very new API right now.
// Not exported from index.
/** @private */
export class AbortController implements AbortSignal {
private _isAborted: boolean = false;
public onabort: (() => void) | null = null;
public abort(): void {
if (!this._isAborted) {
this._isAborted = true;
if (this.onabort) {
this.onabort();
}
}
}
get signal(): AbortSignal {
return this;
}
get aborted(): boolean {
return this._isAborted;
}
}
/** Represents a signal that can be monitored to determine if a request has been aborted. */
export interface AbortSignal {
/** Indicates if the request has been aborted. */
aborted: boolean;
/** Set this to a handler that will be invoked when the request is aborted. */
onabort: (() => void) | null;
}