Package Exports
- @azure/abort-controller
- @azure/abort-controller/package.json
Readme
Azure Abort Controller client library for JavaScript
The @azure/abort-controller package provides AbortSignalLike interface and
AbortError classes to make it easier to work with the
AbortController
and the AbortSignal used by
fetch built into modern JavaScript platforms.
Customers of Azure SDK for JavaScript in general do not need to use this library. Instead they
use AbortController and AbortSignal provided by their platforms and pass the abort signals to Azure SDK operations.
Key links:
Getting started
Installation
Install this library using npm as follows
npm install @azure/abort-controllerKey Concepts
Use AbortController to create an AbortSignal which can then be passed to Azure SDK operations to cancel
pending work. The AbortSignal can be accessed via the signal property on an instantiated AbortController.
An AbortSignal can also be returned directly from a static method, e.g. AbortSignal.timeout(100).
that is cancelled after 100 milliseconds.
Examples
The below examples assume that doAsyncWork is a function that takes a bag of properties, one of which is
of the abort signal.
Example 1 - basic usage
async function doAsyncWork(options: { abortSignal: AbortSignal }): Promise<void> {
if (options.abortSignal.aborted) {
return;
}
// do async work
}
const controller = new AbortController();
doAsyncWork({ abortSignal: controller.signal });
// at some point later
controller.abort();Example 2 - Aborting with timeout
async function doAsyncWork(options: { abortSignal: AbortSignal }): Promise<void> {
if (options.abortSignal.aborted) {
return;
}
// do async work
}
const signal = AbortSignal.timeout(1000);
doAsyncWork({ abortSignal: signal });Next steps
You can build and run the tests locally by executing npm run test. Explore the test folder to see advanced usage and behavior of the public classes.
Troubleshooting
If you run into issues while using this library, please feel free to file an issue.
Contributing
If you'd like to contribute to this library, please read the contributing guide to learn more about how to build and test the code.