[英]What is the reason the Async function that I have below is returning Promise { <pending> } instead of returning the proper value?
當我從下面的代碼中console.log()
paymentResults 和 pendingResults 時,我可以看到數據被正確記錄。 但是,就在我嘗試退還付款和待處理的最后一刻,我在后端看到結果為Promise { <pending> }
。 原因是什么,我該如何解決這個問題?
const query = await pool.query(q);
const payments = query.rows.filter(o => getCategory(o) === "payment");
const pending = query.rows.filter(o => getCategory(o) === "pending");
const inactive = query.rows.filter(o => getCategory(o) === "inactive");
const paymentsResults = payments.map(async order => {
const A = ({
date: getDate(order),
item: await getItem(order),
total: getTotal(order),
purchaser: getPurchaser(order),
email: getEmail(order),
paymentMethod: getPaidUsing(order),
status: getStatus(order)
});
return A;
});
const pendingResults = pending.map(async order => {
const B = {
date: getDate(order),
item: await getItem(order),
total: getTotal(order),
purchaser: getPurchaser(order),
email: getEmail(order),
status: getStatus(order)
};
return B;
});
return {
payments: paymentsResults,
pending: pendingResults,
inactive: inactive
};
};
const paymentsResults = await Promise.all(payments.map(async order => {
const A = {
date: getDate(order),
item: await getItem(order),
total: getTotal(order),
purchaser: getPurchaser(order),
email: getEmail(order),
paymentMethod: getPaidUsing(order),
status: getStatus(order)
};
return A;
}));
const pendingResults = await Promise.all(pending.map(async order => {
const B = {
date: getDate(order),
item: await getItem(order),
total: getTotal(order),
purchaser: getPurchaser(order),
email: getEmail(order),
status: getStatus(order)
};
return B;
}));
Promise.all
解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.