1234567891011121314151617181920212223242526272829 |
- // 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;
|