@sussudio/base
Version:
Internal APIs for VS Code's utilities and user interface building blocks.
39 lines (37 loc) • 1.39 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IDisposable } from './lifecycle.mjs';
export interface CancellationToken {
/**
* A flag signalling is cancellation has been requested.
*/
readonly isCancellationRequested: boolean;
/**
* An event which fires when cancellation is requested. This event
* only ever fires `once` as cancellation can only happen once. Listeners
* that are registered after cancellation will be called (next event loop run),
* but also only once.
*
* @event
*/
readonly onCancellationRequested: (
listener: (e: any) => any,
thisArgs?: any,
disposables?: IDisposable[],
) => IDisposable;
}
export declare namespace CancellationToken {
function isCancellationToken(thing: unknown): thing is CancellationToken;
const None: Readonly<CancellationToken>;
const Cancelled: Readonly<CancellationToken>;
}
export declare class CancellationTokenSource {
private _token?;
private _parentListener?;
constructor(parent?: CancellationToken);
get token(): CancellationToken;
cancel(): void;
dispose(cancel?: boolean): void;
}