本章介绍了ES6中引入的Promise对象的大量细节内容,以帮助JavaScript程序员处理困扰该语言多年的同步问题。大量的使用异步回调,这会产生回调地狱,因而我们要尽量避免它。
Promise通过实现一个足以解决任何值的通用接口来帮助我们处理同步问题。promise总是处于三种状态之一 - 等待,完成或拒绝,并且它们只会改变一次状态。当这些状态发生改变时,将触发回调。promise有一个执行器函数,其作用是设置使用promise的异步操作resolver函数或rejector函数来改变promise的状态。
promise带来的大部分价值在于它们如何帮助我们简化复杂的场景。因为,如果我们只需处理一个运行带有解析值回调的异步操作,那么使用promises就不值得。这是不常见的情况。常见的情况是几个异步操作,每个操作都需要解析返回值;并且这些值需要同步处理和转换。Promises有方法帮助我们这样做,因此,我们能够更好地将同步并发原则应用于我们的代码。
在下一章中,我们将介绍另一个新引入的语法 - Generator。与promises类似,生成器是帮助我们应用另一个并发原则的机制 - 保护。