Promise
1、概念
Promise是ES6新增的一个对象,Promise的提出是为了解决回调地狱。
Promise对象就表示一个异步操作。
Promise对象可以把以前异步的回调函数的方式,以同步的思路表达出来
2、Promise的构造函数的参数
let p = new Promise(function(resolve,reject){
});
resolve:Promise里的异步执行成功调用的函数
reject:Promise里的异步执行失败调用的函数
3、Promise对象的方法then
then:然后的意思。
then()有两个参数,第一个参数是resolve函数,第二个参数是reject
then()函数的返回值就是Promise对象。
let p = new Promise(function(resolve,reject){
});
p.then(function(){resolve},function(){reject});
4、Promise的代码
function fn3(){
console.log("fn3开始");
setTimeout(function(){
console.log("fn3异步操作完毕!");
},1000);
console.log("fn3结束");
}
function fn2(){
return new Promise(function(resolve,reject){
console.log("fn2开始");
setTimeout(function(){
console.log("fn2异步操作完毕!");
resolve();
},1000);
console.log("fn2结束");
});
}
function fn1(){
// Promise对象就表示一个异步操作。
let p1 = new Promise(function(resolve,reject){
console.log("fn1开始");
setTimeout(function(){
console.log("fn1异步操作完毕!");
resolve();
},1000);
console.log("fn1结束");
});
return p1
}
// Promise对象可以把以前异步的回调函数的方式,以同步的思路表达出来
fn1().then(fn2).then(fn3);