,如果你幫我下面的情況下,我會明白:需要幫助有關異步函數執行流程(AWAIT,承諾,node.js中)
鑑於功能:
async function getAllProductsData() {
try {
allProductsInfo = await getDataFromUri(cpCampaignsLink);
allProductsInfo = await getCpCampaignsIdsAndNamesData(allProductsInfo);
await Promise.all(allProductsInfo.map(async (item) => {
item.images = await getProductsOfCampaign(item.id);
}));
allProductsInfo = JSON.stringify(allProductsInfo);
console.log(allProductsInfo);
return allProductsInfo;
} catch(err) {
handleErr(err);
}
}
這個功能被觸發時,服務器啓動時,它彙集了來自其他網站的活動信息:獲取數據(getDataFromUri()),然後從數據名稱和ID提取(getCpCampaignsIdsAndNamesData()),然後得到的產品圖片爲每個廣告活動(getProductsOfCampaign());
app.get('/products', async (req, res) => {
if (allProductsInfo.length === undefined) {
console.log('Pending...');
allProductsInfo = await getAllProductsData();
}
res.status(200).send(allProductsInfo);
});
問題描述:
- 啓動服務器,等待幾秒鐘,直到getAllProductsData()被執行,做'/產品的
我還與下面的代碼段express.app GET請求,所有作品都很棒!
啓動服務器,並立即火'/產品的GET請求」(爲此我說如果與執行console.log(‘等待...’)表達式),我得到損壞結果返回:它包含了所有活動的名稱, ID,但沒有圖像數組。
- [{ 「ID」: 「1111」, 「名」: 「有些名」},{ 「ID」: 「2222」, 「名」: 「其他一些名字」}], 而我期待
- [{ 「ID」: 「1111」, 「名」: 「有些名稱」, 「圖片」: 「URI」, 「URI」 ...]} ...]
,我將非常感謝您的幫助有關:
- 解釋什麼與作爲發生的流執行ync,以及爲什麼不等待圖像數組添加到對象而發送結果?
- 如果你知道一些有用的文章/規格部分涵蓋了我的話題,我會感激。
謝謝。