2 回答

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 。

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è)承諾。
添加回答
舉報(bào)