Javascript 如何在try/catch中使用map?
我有一个样品,请看一看,如果我做得对Javascript 如何在try/catch中使用map?,javascript,node.js,promise,async-await,Javascript,Node.js,Promise,Async Await,我有一个样品,请看一看,如果我做得对 export const create = async ({ invitationList, testId }) => { try { const promises = invitationList.map(async invitationTo => { return new Promise(async (resolve, reject) => { const invitation = await I
export const create = async ({ invitationList, testId }) => {
try {
const promises = invitationList.map(async invitationTo => {
return new Promise(async (resolve, reject) => {
const invitation = await InterviewSchedule({
invitationTo,
testId
}).save();
resolve(invitation);
});
});
Promise.all(promises).then(value => {
console.log(value);
});
} catch (error) {
throw error;
}
};
我无法捕获catch块中的错误。经典的
try
/catch
错误控制流仅在等待承诺时有效。在您的代码中,您没有等待承诺。请尝试以下方法:
export const create = async({
invitationList,
testId
}) => {
try {
const promises = invitationList.map(invitationTo =>
new InterviewSchedule({
invitationTo,
testId
}).save());
const results = await Promise.all(promises);
console.log(results);
} catch (error) {
throw error;
}
};
我喜欢你的方式,比如说我想不等待就发送邮件你的意思是在出错的情况下发送邮件吗?不,不,我想发送邮件,在创建面试后,在try区块内哦,好的,然后像这样链接另一个承诺:新建面试计划(…).save()。然后(sendMail)
假设sendMail
是一个函数
,它返回一个承诺
@而不是,那么
。只需将它放在等待
您已经拥有的内容之后,并完全避免使用!