Promises

Promises/A+ logo

Awesome Promises Awesome

> JavaScript Promises的有用资源的精选列表

灵感来自于 awesome 列出的东西. 不要与其他令人敬畏的承诺相混淆,比如“我向你保证一百万美元”或“我保证你会保持健康,永远不必再去健身房”.

Resources, Blogs, and Books

For beginners

Deep Dive

References

Promises/A+ Implementations (ES6/ES2015 compatible)

Strict Implementations

这些实现不超过或少于es6规范. 它们可以制成出色的填充剂,并且与原生承诺非常相容.

Implementations with extras

所有这些都提供了比语言更多的功能,但仍保持兼容. 节点+浏览器适合所有人.

  • bluebird - 功能齐全,性能极佳. 长堆栈跟踪和发电机/协程支持.
  • creed - 像Bluebird一样的高性能和全功能,但面向FP. 协同程序,生成器,承诺,ES2015迭代,幻想土地规范.
  • rsvp.js - 轻量级,额外的一些. 兼容IE6!
  • Q - 原始实现之一. 长堆栈痕迹和其他好东西.
  • then/promise - 使用nodeifydenodifydone()添加小.
  • when.js - 包含控制流程,功能和实用方法.

Fallbacks

Convenience Utilities

本机和严格符合规范的承诺对于兼容性,面向未来,库作者和浏览器而言非常棒. 但是,像bluebird这样的库会将好东西打包到Promise构造函数和原型上. 解? 当然很小的模块!

sindresorhus's many Promise utilities (see notes)

  • delay - 延迟承诺指定的时间.
  • pify - Promisify(“denodify”)一个回调式函数.
  • loud-rejection - 使未处理的承诺拒绝大声失败而不是默认的无声失败.
  • hard-rejection - 使未处理的承诺拒绝立即失败,而不是默认的无声失败
  • p-queue - 使用并发控制的Promise队列
  • p-break - 打破承诺链
  • p-lazy - 创建一个延迟执行的延迟,直到调用.then().catch()
  • p-defer - 创建延期承诺
  • p-if - 有条件的承诺链
  • p-tap - 点击承诺链而不影响其价值或状态
  • p-map - 同时映射承诺
  • p-all - 使用可选的有限并发运行promise-returns和async函数
  • p-limit - 运行具有有限并发性的多个promise-returns和async函数
  • p-times - 同时运行promise-returns和async函数特定次数
  • p-catch-if - 条件承诺捕获处理程序
  • p-time - 衡量承诺解决的时间
  • p-log - 记录承诺的值/错误
  • p-filter - 同时过滤承诺
  • p-settle - 同时解决承诺并获得履行价值或拒绝原因
  • p-memoize - Memoize promise-returns和async函数
  • p-whilst - 当条件返回true时重复调用函数,然后解析promise
  • p-throttle - 节流承诺 - 返回和异步功能
  • p-debounce - 去抖承诺 - 返回和异步功能
  • p-retry - 重试promise-returns或async函数
  • p-wait-for - 等待条件成立
  • p-timeout - 在指定的时间后超时承诺
  • p-race - 更好的Promise.race()
  • p-try - Promise#try() ponyfill - Starts a promise chain
  • p-finally - Promise#finally() ponyfill - Invoked when the promise is settled regardless of outcome
  • p-any - 等待任何承诺得到履行
  • p-some - Wait for a specified number of promises to be fulfilled
  • p-pipe - 将promise-returns和async函数编写到可重用的管道中
  • p-each-series - 连续迭代承诺
  • p-map-series - 按顺序映射承诺
  • p-reduce - 使用promises将值列表减少为值的承诺
  • p-props - 像Promise.all(),但是对于MapObject

Others

  • promise-method - 独立bluebird.method. 将同步返回方法转换为promise返回方法.
  • is-promise - 确定某些东西是否像Promise.
  • sprom - 流结束时解析. 可选缓冲(小心这个!)
  • task.js - 使用promises和generator以阻塞样式编写异步函数. 喜欢bluebird.coroutine.
  • co - 像task.jsbluebird.coroutine,但也支持thunks.
  • lie-fs - 承诺Node的FS API的包装器.
  • promise-do-until - 重复调用函数,直到条件返回true,然后解析promise.
  • promise-do-whilst - 当条件返回true时重复调用函数,然后解析promise.
  • promise-semaphore - 以可配置的串行方式完成一系列工作
  • promise-nodeify - 独立的nodeify方法,在解析或拒绝时调用节点式回调.

License

许可证下 Creative Commons CC0 License.