-
Notifications
You must be signed in to change notification settings - Fork 0
/
async-tasks.js
29 lines (26 loc) · 752 Bytes
/
async-tasks.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* Run basic async task where all async operations are called in a waterfall way.
* @param cb Callback to call when operation is finished.
*/
export async function runAsyncTask(cb) {
await generateAsyncOperation();
await generateAsyncOperation();
await generateAsyncOperation();
cb();
}
/**
* Run smart async task where all async operations are called concurrently.
* @param cb Callback to call when task is finished.
*/
export async function runSmartAsyncTask(cb) {
await Promise.all(new Array(3).fill().map(() => generateAsyncOperation()));
cb();
}
function generateAsyncOperation() {
return new Promise(resolve => {
setTimeout(() => {
for (let i = 0; i < 50000000; i++) { }
resolve();
}, 1000);
});
}