Promise解决了什么问题:在传统的异步编程中,如果异步之间存在依赖关系,我们就需要通过层层的嵌套来满足这种依赖关系,从而导致产生“回调地狱”,而Promise将回调嵌套改为链式调用,增加了可读性和可维护性。
Promise/A+规范的两条核心规则:
- Promise本质是一个状态机,有以下三种状态: Pending:等待态; Fulfilled:执行态; Rejected:拒绝态;
状态的变更是单项的,只能从Pending=>Fulfilled或者Pending=>Rejected,且状态是不可逆的。
- then方法可以接受两个参数,分别对应状态改变时触发的回调。then方法返回一个pormise, then方法可以被同一个promise调用多次。
