1 回答
TA贡献1846条经验 获得超7个赞
ASYNC / AWAIT
您可以使用和的组合Promise.all
来按预期填充allProductInfo
。
需要注意的ASYNC / AWAIT
是,您只能在 ASYNC 函数内使用 ASYNC 函数。
activeProductBank.map
将迭代您的所有activeProductBank
并返回一个 Promise 数组,然后将其传递给 ,Promise.all
然后在列表中的所有 Promise 都解决后解析。
Promise.all
getProductInfo = async (res) => {
const allProductInfo = Promise.all(
activeProductBank.map(SKU => bby.products(SKU, { show:'sku,name'}))
)
res.send(allProductInfo);
};
另一种方法是使用 for..of 循环并使用 Await 调用逐一推送每个 ProductInfo 的响应,如下所示
getProductInfo = async (res) => {
let allProductInfo = [];
for(let sku of allProductInfo) {
const productInfo = await bby.products(sku, { show:'sku,name'});
allProductInfo.push(productInfo);
}
res.send(allProductInfo);
};
添加回答
举报