随着 ES6 新增了 期约 和 ES8 新增了异步函数,通过期约和 async/await,不仅可以实现之前难以实现或不可能实现的任务,而且也能写出更清晰、简洁,并且容易理解、调试的代码。
- 期约:主要功能是为异步代码提供了清晰的抽象(主要用于需要 串行异步代码:序列化、连锁使用、复合、扩展和重组)
- 可以用期约表示异步执行的代码块
- 也可以用期约表示异步计算的值
- 异步函数:将期约应用于 JavaScript 函数的结果。异步函数可以暂停执行,而不阻塞主线程。
两个书中 Promise 例子:Promise的取消封装、Promise的进度通知