如何等待对象被异步编辑?
How to wait for an object to be asynchronously edited?
我有一个 items
的 array
,我想在其中附加一个异步值 getProductMinQuantity
。
问题是渲染 res.status(200)...
是在 item.order_quantity_minimum 编辑之前发送的。
我认为像下面这样的地图会创建一个更新项目的新承诺。
newResult
是一种类型 Promise<any>[] | undefined
,我无法执行 .then
.catch
然后在其中执行我的 res.status
。
const getCart = async () => {
...
let newResult = result.data?.line_items.physical_items.map(async (item: any) =>
item.order_quantity_minimum = await getProductMinQuantity(item.product_id)
)
res.status(200).json({
data: result.data ? normalizeCart(result.data) : null,
})
}
知道我该如何安排吗?
经典题;您不能在同步数组方法(map、forEach、filter 等)中使用 await
。相反,使用 for...of
循环。
let newResult = []
for(let item of result.data?.line_items.physical_items) {
item.order_quantity_minimum = await getProductMinQuantity(item.product_id)
newResult.push(item);
}
// Do something with newResult
我有一个 items
的 array
,我想在其中附加一个异步值 getProductMinQuantity
。
问题是渲染 res.status(200)...
是在 item.order_quantity_minimum 编辑之前发送的。
我认为像下面这样的地图会创建一个更新项目的新承诺。
newResult
是一种类型 Promise<any>[] | undefined
,我无法执行 .then
.catch
然后在其中执行我的 res.status
。
const getCart = async () => {
...
let newResult = result.data?.line_items.physical_items.map(async (item: any) =>
item.order_quantity_minimum = await getProductMinQuantity(item.product_id)
)
res.status(200).json({
data: result.data ? normalizeCart(result.data) : null,
})
}
知道我该如何安排吗?
经典题;您不能在同步数组方法(map、forEach、filter 等)中使用 await
。相反,使用 for...of
循环。
let newResult = []
for(let item of result.data?.line_items.physical_items) {
item.order_quantity_minimum = await getProductMinQuantity(item.product_id)
newResult.push(item);
}
// Do something with newResult