1.3.7 • Published 10 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
10 months ago
1.3.6
10 months ago
1.3.5
10 months ago
1.3.4
10 months ago
1.3.3
10 months ago
1.3.2
10 months ago
1.3.1
10 months ago
1.3.0
11 months ago
1.2.8
12 months ago
1.2.9
12 months ago
1.2.10
11 months ago
1.2.11
11 months ago
1.2.7
1 year ago
1.2.6
1 year ago
1.2.5
1 year ago
1.2.4
1 year ago
1.2.3
2 years ago
1.2.2
2 years ago
1.2.1
2 years ago
1.2.0
2 years ago
1.1.1
2 years ago
1.1.0
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago
1.0.0
2 years ago