async-utils-ts
This is a collection of TypeScript utility functions for handling asynchronous
tasks.cript.
Installation
Using npm:
npm install async-utils-ts
Using yarn:
yarn add async-utils-ts
API
microtask
Creates a new Promise which resolves by queueing a microtask.
microtask().then(() => {
console.log('This will run as soon as possible, asynchronously.');
});
macrotask
Creates a promise that resolves after the current event loop has been processed
(i.e., after all microtasks have been completed).
macrotask().then(() => {
console.log('This is a macrotask');
});
animationFrame
Creates a new Promise that is resolved using requestAnimationFrame
.
async function animate() {
await animationFrame();
}
timeout
Creates a Promise that resolves after a specified duration.
await timeout(1000);
filter
Filters elements of the input array asynchronously based on the provided
predicate function.
const arr = [1, 2, 3, 4, 5];
async function isEven(num) {
return num % 2 === 0;
}
const result = await filter(arr, isEven);
console.log(result);
pSome
Checks if any of the elements from the iterable satisfy the condition of the
provided predicate function.
const iter = [1, 2, 3, 4, 5];
async function isEven(num) {
return num % 2 === 0;
}
const result = await pSome(iter, isEven);
console.log(result);
pNone
Checks if none of the elements from the iterable pass the condition of the
provided predicate function.
const iter = [1, 2, 3, 4, 5];
async function isEven(num) {
return num % 2 === 0;
}
const result = await pNone(iter, isEven);
console.log(result);
pEvery
Checks if all elements from the iterable satisfy the condition of the provided
predicate function.
const iter = [1, 2, 3, 4, 5];
async function isEven(num) {
return num % 2 === 0;
}
const result = await pEvery(iter, isEven);
console.log(result);
first
Retrieves the first value from an async generator.
async function* asyncGen() {
yield 1;
yield 2;
yield 3;
}
const result = await first(asyncGen());
console.log(result);
License
async-utils-ts
is licensed under the MIT License. Feel free to use
and contribute!
For issues or suggestions, please
open an issue.
Happy async coding! 🚀
Authors