练习题
输出打印结果
async function m1() {
return 1;
}
async function m2() {
const n = await m1();
console.log(n);
return 2;
}
async function m3() {
const n = m2();
console.log(n);
return 3;
}
m3().then((n) => {
console.log(n);
});
m3();
console.log(4);
查看答案
备注:因为 m2函数没有await关键字 所以m2函数返回就是一个Promise pending
Promise pending,Promise pending,4,1,3,1
输出打印结果
var a;
var b = new Promise((resolve, reject) => {
console.log("promise1");
setTimeout(() => {
resolve();
}, 1000);
})
.then(() => {
console.log("promise2");
})
.then(() => {
console.log("promise3");
})
.then(() => {
console.log("promise4");
});
a = new Promise((resolve, reject) => {
console.log(a);
await b;
console.log(a)
console.log('after1')
await a;
resolve(true)
console.log('after2')
});
console.log('end')
查看答案
备注: 因为第一个Promise的链式调用 所以b的状态就等于最后一个的Promise的状态
promise1,undefined,promise2,promise3,promise4,Promise pending,after1