Socket
Book a DemoInstallSign in
Socket

make-asynchronous

Package Overview
Dependencies
Maintainers
0
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

make-asynchronous

Make a synchronous function asynchronous by running it in a worker

latest
Source
npmnpm
Version
1.0.1
Version published
Weekly downloads
664K
57.32%
Maintainers
0
Weekly downloads
 
Created
Source

make-asynchronous

Make a synchronous function asynchronous by running it in a worker

This makes it super simple to offload some expensive work without having to deal with the complex Web Workers API.

Please upvote this Node.js issue 🙏 It would let us reduce the amount of dependencies and simplify the code.

Works in Node.js and browsers.

Install

npm install make-asynchronous

Usage

import makeAsynchronous from 'make-asynchronous';

const fn = makeAsynchronous(number => {
	return performExpensiveOperation(number);
});

console.log(await fn(2));
//=> 345342

API

makeAsynchronous(function)

Returns a wrapped version of the given function which executes asynchronously in a background thread (meaning it will not block the main thread).

The given function is serialized, so you cannot use any variables or imports from outside the function scope. You can instead pass in arguments to the function.

makeAsynchronousIterable(function)

Make the iterable returned by a function asynchronous by running it in a worker.

import {makeAsynchronousIterable} from 'make-asynchronous';

const fn = makeAsynchronousIterable(function * (number) {
	yield * performExpensiveOperation(number);
});

for await (const number of fn(2)) {
	console.log(number);
}

fn.withSignal(signal)

The function returned by makeAsynchronous and makeAsynchronousIterable has an additional method which allows an AbortSignal to be provided.

import makeAsynchronous from 'make-asynchronous';

const fn = makeAsynchronous(number => {
	return performExpensiveOperation(number);
});

const controller = new AbortController();
const timeoutId = setTimeout(() => {
	controller.abort();
}, 1000); // 1 second timeout

const result = await fn.withSignal(controller.signal)(2);
clearTimeout(timeoutId);

console.log(result);
//=> 345342
  • make-synchronous - Make an asynchronous function synchronous
  • sleep-synchronously - Block the main thread for a given amount of time

Keywords

function

FAQs

Package last updated on 21 Sep 2024

Did you know?

Socket

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.

Install

Related posts