Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@azure/abort-controller
Advanced tools
The @azure/abort-controller npm package provides a way to use AbortController and AbortSignal, which are interfaces for abortable operations, in the Azure SDKs. These are particularly useful for cancelling asynchronous operations in JavaScript, such as network requests or long-running processes.
Creating an AbortController and AbortSignal
This feature allows you to create an instance of AbortController and retrieve its AbortSignal. The signal can then be passed to operations that support cancellation.
const { AbortController } = require('@azure/abort-controller');
const controller = new AbortController();
const signal = controller.signal;
Aborting an operation
This feature enables you to abort an operation by calling the `abort` method on the controller. Any operation listening to the associated signal will be cancelled.
controller.abort();
Listening for an abort signal
This feature allows you to listen for an abort event on the AbortSignal. This is useful for performing cleanup or rollback actions when an operation is cancelled.
signal.addEventListener('abort', () => {
console.log('Operation aborted!');
});
The 'abort-controller' package provides a similar API for creating abortable operations using AbortController and AbortSignal. It is a polyfill for the AbortController interface that works in both web browsers and Node.js environments. Compared to @azure/abort-controller, it is not specific to Azure SDKs and can be used in a wider range of applications.
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:
Install this library using npm as follows
npm install @azure/abort-controller
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.
The below examples assume that doAsyncWork
is a function that takes a bag of properties, one of which is
of the abort signal.
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();
async function doAsyncWork(options: { abortSignal: AbortSignal }): Promise<void> {
if (options.abortSignal.aborted) {
return;
}
// do async work
}
const signal = AbortSignal.timeout(1000);
doAsyncWork({ abortSignal: signal });
You can build and run the tests locally by executing rushx test
. Explore the test
folder to see advanced usage and behavior of the public classes.
If you run into issues while using this library, please feel free to file an issue.
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.
FAQs
Microsoft Azure SDK for JavaScript - Aborter
The npm package @azure/abort-controller receives a total of 13,386,130 weekly downloads. As such, @azure/abort-controller popularity was classified as popular.
We found that @azure/abort-controller demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.