回顾

Pormise

相较于传统的回调模式,Promise 有着巨大的进步,值得我们学习和使用。

优势

  1. 可以很好地解决异步回调不好写、不好读的问题
  2. 可以使用队列,并且在对象之间传递
  3. 不引入新语言元素,大部分浏览器已经原生支持,可以放心使用;个别不支持的,也有完善的解决方案

不足

  1. 引入了不少新概念、新写法,学习成本不低
  2. 也会有嵌套,可能看起来还很复杂
  3. 没有真正解决 return/try/catch 的问题

Async Functions

异步函数是 ES2017 里非常有价值的新特性,可以极大的改善异步开发的环境。

除了覆盖率,几乎找不出什么黑点。

目前大部分主流浏览器都已经实现对它的支持,除了 IE 和 iOS 10.2。我们可以针对这两个系列的浏览器里进行降级,不过请注意,因为 Async Functions 引入了新的语法元素,所以必须用 Babel 转译的方式来处理。

一些小 Tips

这是我犯过的一些错误,希望成为大家前车之鉴。

  • .resolve() .reject() 不会自动 return
  • Promise 里必须 .resolve() .reject() throw err 才会改变状态,.then() 不需要。
  • resolve() 只会返回一个值,返回多个值请用数组或对象。

参考阅读

results matching ""

    No results matching ""