Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在try/catch中使用map?_Javascript_Node.js_Promise_Async Await - Fatal编程技术网

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
是一个
函数
,它返回一个
承诺
@而不是
,那么
。只需将它放在
等待
您已经拥有的内容之后,并完全避免使用!