20200312
Plan
- 你不知道的 js 中卷 -- promise
Notes
promise.defer 是做什么用的?
Promise 模式
promise.race 中不要传入空数组。永远是 pending
promise.race 可以用来判断某个异步操作是否超时
Promise.none
Promise.any -- 忽略拒绝,只需要完成 1 个
Promise.first
Promise.last
promise 的局限性
- 错误处理
一旦出现错误,但是又没有错误处理函数,错误会被一直传递下去。又或者在结尾处添加 catch 来捕获错误,但是 promise 链中某处添加了错误处理,那么这个错误就被吞掉了。
- 单一值:每次往下传递的值是单一的,除非自己做封装(但是不优雅)
- 单决议:
- 惯性:从回调 => promise
- 无法取消一个 promise
- 性能:会比基于回调的异步操作慢一些