1.3.7 • Published 8 months ago
@alwatr/async-queue v1.3.7
Async Queue
A queue that executes async tasks in order like mutex and semaphore methodology for javascript and typescript.
Installation
yarn add @alwatr/async-queue
Usage
import {AsyncQueue} from '@alwatr/async-queue';
import {waitForTimeout} from '@alwatr/wait';
const queue = new AsyncQueue();
async function longTask(n) {
console.log('longTask(%s)', n);
await queue.push('longTaskId', async () => {
console.log('longTask %s start', n);
// Simulate a long task
await waitForTimeout(1000);
});
console.log('longTask %s end', n);
}
// run the tasks parallel
longTask(1);
longTask(2);
longTask(3).then(() => console.log('longTask 3 resolved'));
longTask(4);
/*
Output:
longTask(1)
longTask(2)
longTask(3)
longTask(4)
longTask 1 start
longTask 1 end
longTask 2 start
longTask 2 end
longTask 3 start
longTask 3 end
longTask 3 resolved
longTask 4 start
longTask 4 end
*/
1.3.7
8 months ago
1.3.6
8 months ago
1.3.5
8 months ago
1.3.4
8 months ago
1.3.3
8 months ago
1.3.2
8 months ago
1.3.1
8 months ago
1.3.0
9 months ago
1.2.8
10 months ago
1.2.9
10 months ago
1.2.10
9 months ago
1.2.11
9 months ago
1.2.7
12 months ago
1.2.6
1 year ago
1.2.5
1 year ago
1.2.4
1 year ago
1.2.3
1 year ago
1.2.2
1 year ago
1.2.1
1 year ago
1.2.0
1 year ago
1.1.1
1 year ago
1.1.0
1 year ago
1.0.2
1 year ago
1.0.1
1 year ago
1.0.0
1 year ago