2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
我會(huì)使用“承諾”來(lái)等待,直到收到您的第一個(gè)請(qǐng)求的回復(fù)為止。一旦發(fā)生這種情況,您可以觸發(fā)第二個(gè)請(qǐng)求(請(qǐng)參閱下面的鏈接中的“ then”)。一旦第二個(gè)請(qǐng)求返回結(jié)果,就可以在使用數(shù)據(jù)之前合并兩個(gè)請(qǐng)求的響應(yīng)。
如果請(qǐng)求B需要使用來(lái)自請(qǐng)求A響應(yīng)的數(shù)據(jù),則請(qǐng)求A應(yīng)該位于鏈中的第一位。這樣,您可以根據(jù)第一個(gè)請(qǐng)求的響應(yīng)(例如,使用IF語(yǔ)句)來(lái)調(diào)整第二個(gè)請(qǐng)求。如果兩者完全獨(dú)立,則可以選擇其中一個(gè)請(qǐng)求先行。
在此鏈接上有關(guān)于鏈接承諾的部分,該部分應(yīng)與您要執(zhí)行的操作有關(guān):https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/然后
有關(guān)使用promise和'catch'處理錯(cuò)誤的詳細(xì)信息https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
盡管確實(shí)可以簡(jiǎn)化請(qǐng)求結(jié)構(gòu),但實(shí)際上沒(méi)有必要使用promise,但是您可以輕松地嵌套請(qǐng)求:
request(url, function(err, response, body) {
request(url2, function(err2, response2, body2) {
// Both request data is available here
})
})
請(qǐng)注意,可以在此處更改回調(diào)函數(shù)中使用的變量名稱
如果您有一堆可以獨(dú)立運(yùn)行的請(qǐng)求,請(qǐng)調(diào)查 promise.all
添加回答
舉報(bào)