Promise是JavaScript异步编程解决方案,之一
以往我们所习惯的回调函数也是之一,还有事件监听和观察者模式(也叫发布订阅模式)也算
而Promise是遵循的是Promise/A+规范,像Axios也是遵循这个规范,提供了相同的api
Promise/A+规范解决了回调函数的一些弊端,比如
- 代码书写逻辑
- 更改回调顺序的噩梦
- 多步回调的魔鬼嵌套
- 回调函数的跟踪
但Promise也不是万能的,作为解决方案之一,并不是适合所有的异步场景
前面说到Promise特征之一就是状态一旦变成 fulfilled 或是 rejected ,则不会再改变,而当执行 then 进行 resolve 和 rejected 回调注册时,返回的其实是一个新的Promise对象
1 | var p = new Promise(resolve => { |