1 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,
awati
后面應(yīng)該跟Promise
實(shí)例。其次,
async
函數(shù)返回的是Promise
實(shí)例。
具體到樓主的例子,fun1
、fun2
前面的async
是多余的,因?yàn)?nbsp;fun1() => fun2() => fun3()
已經(jīng)返回了Promise
實(shí)例。
可以改成下面的代碼。
function fun1() {
return fun2(); // 這里的 await 為什么可以省略?加上await結(jié)果也是一樣的
}
function fun2() {
return fun3(); // 這里的 await 為什么可以省略?加上await結(jié)果也是一樣的
}
function fun3() {
return new Promise(resolve => {
console.log('fun3');
resolve('fufff 3 ret');
});
}
async function testfun1() {
const ret = await fun1();
console.log(ret);
}
testfun1()
對(duì)比下面的例子,可能更直觀
function bar () {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('bar');
}, 1000);
});
}
async function foo () {
let ret1 = bar();
let ret2 = await bar();
console.log(ret1); // Promise { 'bar' }
console.log(ret2); // bar
}
foo();
添加回答
舉報(bào)