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
| // Perform a set of tasks in array quickly. Sometimes testing much better for
| // large sets of work instead of individual promises.
| const bulkFsTask = (array, each) =>
| new Promise((resolve, reject) => {
| let ops = 0;
| const out = [];
| array.forEach((item, i) => {
| out[i] = each(item, (back, callback) => {
| ops++;
| return (err, value) => {
| try {
| out[i] = back(err, value, out[i]);
| } catch (e) {
| return reject(e);
| }
|
| ops--;
| if (ops === 0) {
| resolve(out);
| }
| };
| });
| });
| if (ops === 0) {
| resolve(out);
| }
| });
|
| module.exports = bulkFsTask;
|
|