javascript - Promise.each 没有 Bluebird

标签 javascript promise bluebird

我需要在 bluebird 上使用 Promise.each。但是当我看到捆绑文件时,我实际上在考虑是否使用 bluebird

任何人都可以给我一个使用像 bluebird Promise.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);
}

关于javascript - Promise.each 没有 Bluebird ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41607804/

相关文章:

javascript - UnderscoreJS - For 循环数组的长度

javascript - 为什么我的部分没有被发现?

javascript - 使用 Native javascript 从 JSOn 中提取字段

javascript - 等待嵌套的子 promise

javascript - 将数组与错误合并为单一类型

javascript - 为什么这个带有 promise 的测试没有通过?

javascript - 从对象中删除虚假值,但不是 0

javascript - 使用 axios 递归获取数据并链接结果

javascript - 并行运行 promise 但单独处理拒绝

javascript - Bluebird promise 未定义?