JS Promise 迷你书 笔记

 

  1. 使用promise.then(onFulfilled, onRejected) 的话,在 onFulfilled 中发生异常的话,在 onRejected 中是捕获不到这个异常的。
  2. 在 promise.then(onFulfilled).catch(onRejected) 的情况下,then 中产生的异常能在 .catch 中捕获。
  3. .then 和 .catch 在本质上是没有区别的,但需要分场合使用。
  4. .then 和 .catch 中指定的方法调用时异步进行的。
  5. 传给 promise.all 的promise并不是一个个顺序执行的,而是同时开始,并行执行的。
  6. 为了避免上述中同时使用同步、异步调用可能引起的混乱问题,Promise在规范上规定 Promise只能使用异步调用方式 。
  7. Promise.race 在第一个promise对象变为Fulfilled之后,并不会取消其他promise对象的执行。
  8. 使用 reject 会比使用 throw 安全,在 then 中使用reject的方法。
  9. 在Promise中,我们可以选择多种方法来实现处理的按顺序执行。

    • 循环使用then调用的方法

    • 使用for循环的方法

    • 使用reduce的方法

    • 分离出顺序处理函数的方法

    但是,这些方法都是基于JavaScript中对数组及进行操作的for循环或 forEach 等,本质上并无大区别。

    因此从一定程度上来说,在处理Promise的时候,将大块的处理分成小函数来实现是一个非常好的实践。

posted @ 2019-06-03 17:48  柠檬小怪兽  阅读(195)  评论(0编辑  收藏  举报