promise-fun 是一个 JavaScript 库,它提供了一些有用的 Promise 相关的函数,可以让你更方便地使用 Promise。例如,它提供了一些函数来处理 Promise 的错误,以及一些函数来处理 Promise 的并发。如果你经常使用 Promise,那么 promise-fun 可能会对你有所帮助。
🔗 https://github.com/sindresorhus/promise-fun
promise-fun中包含的库
- pify: 将回调风格的函数转换为 Promise
- delay: 将Promise延迟指定时间执行
- yoctodelay: 将Promise延迟指定时间执行
- p-map: 并发地映射Promise
- p-all: 和Promise.all类似,但可以控制并发
- p-queue: Promise 队列,带有并发控制
- p-event: 等待事件被触发并将其Promise化
- p-debounce: 防抖函数,返回Promise
- p-throttle: 节流函数,返回Promise
- p-timeout: Promise超过一段时间后,抛出timeout错误
- p-retry: 如果Promise错误,重试一定次数
- p-any: 改进的Promise.race,原因
- p-some: 等待指定数量的 Promise 被实现
- p-locate: 在多个Promise中,挑选出第一个符合测试条件的
- p-limit: 并发执行Promise
- p-series: 按顺序运行返回 Promise 和异步函数
- p-memoize: 缓存执行Promise,当输入参数一样的时候,输出缓存结果
- p-pipe: 管道串联执行Promise,并返回一个Promise
- p-props: 类似于 Promise.all(),但适用于 Map 和 Object
- p-waterfall: (和pipe类似,但用法不同) 按顺序运行返回 Promise 和异步函数,每个都将其结果传递给下一个
- p-cancelable: 创建可取消的 promise
- p-progress: 创建可报告进度的 promise
- p-reflect: 映射Promise,并使其在reject时也返回resolve
- p-filter: 类似于Array.filter,并发地过滤promise
- p-reduce: 类似于Array.reduce
- p-settle: 并发处理promise,并获取映射后的结果(resolve或者reject)
- p-every: 测试所有 promises 是否能通过测试函数
- p-one: 测试某些 promises 是否能通过测试函数
- p-map-series: 逐个映射 Promise
- p-each-series: 逐个获取多个Promise的值
- p-times: 并行执行多次Promise
- p-lazy: 创建Promise,但不马上执行,直到被
await
,或者调用.then
或者.catch
- p-whilst: Promise版本的while
- p-do-whilst: Promise版本的do-while
- p-forever: 重复运行返回 Promise,直到手动结束
- p-wait-for: 创建Promise,等待条件成立后fulfilled
- p-min-delay: 使得Promise至少执行一段时间。通常用于加载loading动画
- p-try: Promise.try() 的ponyfill - 开始一个 promise 链
- p-race: 更好的 Promise.race()
- p-immediate: 在下一事件循环中返回Promise.resolve() - 类似于 setImmediate()
- p-time: 测量 promise 执行所需的时间
- p-defer: 创建延迟的 promise
- p-is-promise: 检查某个对象是否是 promise
- p-state: 获取promise 的状态
- make-synchronous: 将异步函数变成同步函数