一、Promise对象:用来解决异步回调地狱现象(回调函数多层嵌套,代码横向延伸)
var p1
= new Promise(function (resolve
, reject
) {
var a
= 10;
var b
= 5;
if(a
> b
){
resolve("我是第一个resolve");
}else {
reject("我是第一个reject");
}
});
var p2
= new Promise(function (resolve
, reject
) {
var a
= 2;
var b
= 5;
if(a
> b
){
resolve("我是第二个resolve");
}else {
reject("我是第二个reject");
}
});
console
.log("================");
console
.log(1);
console
.log("================");
p1
.then(function (data
) {
console
.log(data
);
return p2
;
},function (err
) {
console
.log(err
);
})
.then(function (data
) {
console
.log(data
);
},function (err
) {
console
.log(err
);
});
console
.log("================");
console
.log(2);
console
.log("================");
二、async、await、Promise一起使用:ES7语法中才能这么使用
async:修饰一个函数,使函数变成异步函数;
await:只有在使用了async修饰的函数体中,才可以使用await;
await修饰是一个Promise对象。
async function test() {
var data1
= await new Promise(function (resolve
, reject
) {
if(1 == 1){
resolve(1);
}else {
reject(2);
}
});
console
.log(data1
);
var data2
= await new Promise(function (resolve
, reject
) {
if(1 == 2){
resolve(3);
}else {
reject(4);
}
});
console
.log(data2
);
}
转载请注明原文地址: https://mac.8miu.com/read-513830.html