为了实现异步有序的问题,可用回调函数层层嵌套解决,但很麻烦,为了解决这个问题,ES6引入了Promise( )来解决异步有序的问题。
1:创建一个Promise对象
代码示例如下:
var promise = new Promise(function(resolve, reject) {
// 异步处理
// 处理结束后、调用resolve 或 reject
});
当异步代码执行成功后,调用resolve(,,,)。
失败后,调用reject(,,,)
2:通过Promise对象的then方法实现
a)Promsise( )身上有三个状态:pending;fulfilled;rejected
b)调用Promise的回调函数:当异步函数体里的代码执行成功后,调用resolve函数时,会将Promise的状态从pending变为fulfilled;当调用reject函数时,会将Promise的状态从pending变为rejected
3:Promise.prototype.then()方法
a)两个参数:onFulfilled(可选)当Promise的状态变为fulfilled时,会触发此监听器;onRejected(可选),当Promise的状态变为reject状态时,会触发此监听器;
示例如下:
var p1 = new Promise((resolve, reject) => {
resolve('成功!');
});
p1.then(value => {
console.log(value); // 成功!
});