CodeSky 代码之空

随手记录自己的学习过程

我只想让一堆 Promise 跑起来:promise-foreach

2018-09-03 21:22分类: JavaScript评论: 2

最近在写项目的时候有个需求:我的 Promise 即使失败了也没关系——更进一步的,当且仅当失败率大于某一值,这才是一个失败的请求。

于是我查看了包括 ES6 Promise 和 Bluebird 的实现,发现都没有我想要的效果:

  1. 异步无序
  2. 每个方法使用相同处理函数
  3. 失败不影响结果

在完成项目之后把函数抽出来作为一个单独的 utils 模块发布,今天总算把 lint 和 test 补齐了,于是顺手写一篇宣传文。

他没什么大作用,函数实现还是表现形式都比较 Low:

1const foreach = require('sky-promise-foreach')
2
3foreach([...promises], (result) => {
4  // success handler for each promise
5}, (err) => {
6  // error handler for each promise
7})
8

在同事的建议下,之后有空可能会出一个改版,把这个库做的更通用一点。

Repo 地址:https://github.com/csvwolf/promise-foreach

评论 (2)

天猪2018年9月6日 15:02

https://github.com/sindresorhus/promise-fun 了解下

SebastianBlade2018年9月3日 21:57

你们的需求真是多样。。。