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

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

當(dāng)我在對象字面量中使用 await 時(shí)程序如何運(yùn)行?

當(dāng)我在對象字面量中使用 await 時(shí)程序如何運(yùn)行?

肥皂起泡泡 2023-03-10 16:45:02
當(dāng)我寫一個(gè)返回對象的函數(shù),但是對象的每一個(gè)值都是通過 resolving promises 構(gòu)造的,最后我會(huì)得到什么?我的意思是,對象值的類型是什么?async foo() {    return {        p1: await fetch('http://dummy.restapiexample.com/api/v1/employees') // FETCH REQUEST,        p2: await fetch('http://dummy.restapiexample.com/api/v1/employees') // FETCH REQUEST    }}對于這樣的流程,將在 ?p2之后解決p1?此代碼是否與以下示例一樣工作:async foo() {    const p1 = await fetch('http://dummy.restapiexample.com/api/v1/employees') // FETCH REQUEST    const p2 = await fetch('http://dummy.restapiexample.com/api/v1/employees') // FETCH REQUEST    return {        p1,        p2    }}謝謝你!
查看完整描述

2 回答

?
犯罪嫌疑人X

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

要求您澄清您的問題(?。N視?huì)盡力解釋您實(shí)際要問的內(nèi)容。我很想簡單地刪除這個(gè)答案。它可能有用也可能沒有用!


如果你偽造“FETCH REQUEST”是什么,使用一種async在它啟動(dòng)時(shí)簡單地打印到控制臺(tái)的方法,就在它(異步)解析之前,你可以很清楚地看到它會(huì)在p1開始之前完成p2。運(yùn)行它幾次可以確認(rèn)這是對p1和p2不交錯(cuò)的調(diào)用。


async function foo() {

    return {

        p1: await randomAsyncMethod("p1"),

        p2: await randomAsyncMethod("p2")

    }

}


async function randomAsyncMethod(which){

   console.log("starting",which);

   return new Promise( resolve =>  

      setTimeout( () => {

          console.log("resolving",which);

          resolve();

      }, Math.random() * 1000)

   );

}



foo();


現(xiàn)在將其更改為第二個(gè)示例,您可以看到行為基本相同。


async function foo() {

    var p1 = await randomAsyncMethod("p1");

    var p2 = await randomAsyncMethod("p2");

    return {

        p1,

        p2 

    }

}


async function randomAsyncMethod(which){

   console.log("starting",which);

   return new Promise( resolve =>  

      setTimeout( () => {

          console.log("resolving",which);

          resolve();

      }, Math.random() * 1000)

   );

}



foo();


至于你的對象會(huì)包含什么fetch方法的返回值是:

解析為Response對象的 Promise 。


查看完整回答
反對 回復(fù) 2023-03-10
?
慕尼黑8549860

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

查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

Promise 是創(chuàng)建 Promise 時(shí)不一定知道的值的代理。它允許您將處理程序與異步操作的最終成功值或失敗原因相關(guān)聯(lián)。這讓異步方法像同步方法一樣返回值:異步方法不是立即返回最終值,而是返回一個(gè)在未來某個(gè)時(shí)間點(diǎn)提供值的承諾。

p1 和 p2 在兩個(gè)示例中都返回一個(gè)承諾。


查看完整回答
反對 回復(fù) 2023-03-10
  • 2 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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