javascript - 如何在 try/catch 中使用 map?
问题描述
我有一个样品,请看一下,如果我做对了,
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
控制流仅在您做出await
承诺时才有效。在您的代码中,您不是在等待Promise.all
. 试试这个:
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;
}
};
推荐阅读
- c# - Elmah Raise() 记录内部异常
- arrays - 如何在打字稿中定义数组中的数组?
- javascript - Angular 4-在表格中添加行
- antlr - 左递归删除
- react-native - 在 React 中尝试使用 setTimeout 调用函数来延迟
- windows-10 - cx_Freeze 错误模块 SSL 不可用 Python 3.7 Windows 10
- python - Python 类型错误:可视化只需要 1 个参数,给定 53
- javascript - 一旦抛出异常,try-catch 语句就中断 try-block
- postgresql-10 - 如何为我的 PostgreSQL10 安装 pgAudit?
- dask - 将 Dask/XArray 写入 NetCDF - 并行 IO