コメント - 次の操作を実行できます。
Promise.series = (array, fn, thisArg) => {
var p = Promise.resolve();
return Promise.all(Array.from(array).map((...args) =>
p = p
.then(() => fn.apply(thisArg, args))
));
};
次に、あなたのコードは
なり、
const arrayABC = [a, b, c.....x, y, z] // length unknown
return Promise.series(promises, doSomething);
(この場合doSomething
で)コールバックは、ちょうどArray#map
のように、引数item, index, array
が渡されますなど
thisArg
など
代替Promise.series
Promise.series = (array, fn, thisArg) =>
Array.from(array).reduce((promise, ...args) =>
promise
.then(results =>
fn.apply(thisArg, args)
.then(result => results.concat(result))
), Promise.resolve([])
);
同じ結果が、Promise.all
Aが不要オプションで、ちょうどあなたが
Array#map
のためにそれを使用する方法のように動作し、Array#forEach
重複(?)http://stackoverflow.com/a/21372335/251311 – zerkmsこの質問はここで徹底的に答えられました。もう少し調べてください。 –