第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

請(qǐng)問es7的一個(gè) async/await, await為什么有的時(shí)候是可以省略的?

請(qǐng)問es7的一個(gè) async/await, await為什么有的時(shí)候是可以省略的?

躍然一笑 2019-03-22 18:14:25
測(cè)試代碼:async function fun1(){    return fun2();// 這里的 await 為什么可以省略?加上await結(jié)果也是一樣的}async function fun2(){    return fun3();// 這里的 await 為什么可以省略?加上await結(jié)果也是一樣的}async function fun3(){    return new Promise(resolve=>{        console.log('fun3');        resolve('fufff 3 ret');    })}async function testfun1(){    const ret = await fun1();    console.log(ret);}testfun1()fun1 fun2 加不加 await 輸出都是一樣的.fun3fufff 3 ret這到底是為什么呢?
查看完整描述

1 回答

?
長風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

  1. 首先,awati后面應(yīng)該跟Promise實(shí)例。

  2. 其次,async函數(shù)返回的是Promise實(shí)例。

具體到樓主的例子,fun1fun2前面的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();


查看完整回答
反對(duì) 回復(fù) 2019-04-03
  • 1 回答
  • 0 關(guān)注
  • 555 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)