promise 是处理异步编程的一种处理方式,可以将异步操作按照同步操作的方式编写。是一个对象或者构造函数,里面存放着某个未来才会执行的结果的方法(一般就是异步操作)
自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。
优点 :
* 将异步操作以同步操作的流程表现出来,避免层层嵌套的回调函数
* 也有缺点 一但建立不能取消
* 其次如果不设置回调函数 内部会抛出报错,不会反应到外部
* 三 处于pending状态时候 无法得知目前处于哪个阶段
* 如果事件不断反复发生 使用stream模式比部署promise更好选择
两个特点 :
1 对象状态不受影响 内部有三种状态 pending fulfilled rejected
* 只有异步操作能决定当前的状态其他任何操作都无法改变状态
2 状态一旦改变就不会再改变,任何时候都可以得到这个结果
* 会一直保持这个结果 resolved 已定型 再对promise对象添加回调函数还是会返回这个结果
* 与事件event不同 事件的特点如果你错过了事件调用 再去监听事件 是不会得到结果的
promise三种状态 pending fulfilled rejected
promise对象是一个构造函数 可以生成promise实例 然后立即执行
promise 构造函数 接受一个函数作为参数 该函数有两个参数分别是 resolve *reject(成功/失败)
Promise
实例生成以后,可以用then
方法分别指定resolved
状态和rejected
状态的回调函数。
Promise.prototype.then() :
Promise 实例具有then方法,也就是说,then方法是定义在原型对象Promise.prototype上的。它的作用是为 Promise 实例添加状态改变时的回调函数。then方法的第一个参数是resolved状态的回调函数,第二个参数是rejected状态的回调函数,它们都是可选的。