Необработанный отказ от обещания внутри улова

Внутри улова появляется следующая ошибка:

BlockquoteUnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за выброса внутри асинхронной функции без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью.catch().

Это код, который его вызывает:

http({
      method: 'post',
      url: config.uri,
      headers: headers,
      data: data
    }).then(function (response) {
      resolve(response.data);
    }).catch(function (error) {
      console.log(error.response.data);
      reject(error.response.data);
    });

Вызов console.log внутри перехвата читает: {статус: 'ОШИБКА', код: 'EMAIL_FAIL', сообщение: 'Ошибка отправки электронной почты' }

Этот код, вызывающий функцию:

router.post('/declaration', csrf, async function (req, res, next) {
    let reqId = generateReqId();
    const ref = reqId.split('-')[0];
   let data = buildSubmission(fakeSub, res.locals.locale.toUpperCase(), ref);
    let headers = { ref: data.ref, reqId: reqId };
    const response = await callAPI.submitApplication(data, headers);

    casaApp.endSession(req).then(() => {
      res.status(302).render('../views/pages/confirmation.njk');
    }).catch((err) => {
      console.log(err);
      res.status(302).render('../views/pages/exit-error.njk');
    });
  });

Почему я получаю это? Я хочу, чтобы код вернулся в вызывающий сегмент, который решит проблему. Какие-либо предложения?

1 ответ

Решение

Вы не поймаете ошибки из запроса callAPI.submitApplication:

router.post('/declaration', csrf, async function (req, res, next) {
    const reqId = generateReqId();
    const ref = reqId.split('-')[0];
    const data = buildSubmission(fakeSub, res.locals.locale.toUpperCase(), ref);
    const headers = { ref: data.ref, reqId: reqId };
    try {
      const response = await callAPI.submitApplication(data, headers);
      await casaApp.endSession(req);
      res.status(302).render('../views/pages/confirmation.njk');
    } catch(e) {
      console.log(err);
      res.status(302).render('../views/pages/exit-error.njk');
    }
  });

Другие вопросы по тегам