Ошибка при выдаче вне обещания. - PullRequest
0 голосов
/ 23 февраля 2020

Я не совсем понимаю, почему эта ошибка (показанная в коде) вызывает как перехват Promise, так и try-catch:

async dispatch => {
    try {
      let dataUrl = await getBlob(url).catch(ex => {
        console.log(ex);   <=== This triggers
        return url;
      });
    }
    catch (err) {
      console.log(err);  <=== This triggers
    }
}

, а getBlob выглядит так:

getBlob = url =>
  fetch(url)
    .then(response => {
      if (response.ok) {
        return response.blob();
      } else {
        throw new Error("...");  <=== Error thrown
      }
    })

1 Ответ

0 голосов
/ 23 февраля 2020

Это потому, что ваша функция getBlob() выдает ошибку, которая вызывает catch для getBlob ().

Теперь, когда этот перехват срабатывает, блок try/catch считает, что он не удался и, в конечном итоге, запускает внешнюю перехват.

Надеюсь, это поможет.

...