bluebirdでPromise.each
を使用する必要があります。しかし、バンドルファイルを見ると、実際にはbluebirdを使用するかどうかを2度考えています。
bluebirdPromise.each
のような関数を依存関係なしで使用した例を誰かに教えてもらえますか。
承知しました:
Promise.each = function(arr, fn) { // take an array and a function
// invalid input
if(!Array.isArray(arr)) return Promise.reject(new Error("Non array passed to each"));
// empty case
if(arr.length === 0) return Promise.resolve();
return arr.reduce(function(prev, cur) {
return prev.then(() => fn(cur))
}, Promise.resolve());
}
または、最新のJS(ChromeまたはEdge、またはトランスパイラー)の場合:
Promise.each = async function(arr, fn) { // take an array and a function
for(const item of arr) await fn(item);
}