-
-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Labels
Description
Is your feature request related to a problem?
I have a large dataset that I want to process as a grouped set of tasks. task.group forces me to create 1 function per task to run, it is slow and no efficient for memory.
Describe the solution you'd like
It would be more efficient to have something like task.map that takes a generator or an array of data, as well as a function to execute for each record.
example:
const data = function*() {
yield 'a';
yield 'b';
yield 'c';
};
// or
// data = ['a', 'b', 'c'];
task.map(data, (task, item)=> task(item, () =>
// so something
}));Task.map can also manage concurrency and invoke the next function only when a seat is freed:
const data = function*() {
yield 'a';
yield 'b';
yield 'c';
};
task.map(
data,
(task, item)=> task(item, () =>
// so something
}),
{concurrency: 2}
);I'm happy to send a PR for this