Итак, я делаю урок, в котором есть часть об асинхронном JavaScript. Я чувствую, что у меня все хорошо написано, но он включает в себя этот раздел, который, по моему мнению, не подходит для обнаружения ошибок?
async function myFunction {
// ...
await someObject.methodThatReturnsPromise();
// ...
await aFunctionThatReturnsPromise();
// ...
}
try {
// ...
myFunction();
// ...
} catch (e) {
// error handling code
}
Это объяснение.
Вы можете увидеть, как это работает, на примере ниже. myFunction() — это
асинхронная функция, вызываемая внутри блока try...catch. Когда запускается
myFunction(), выполнение кода приостанавливается в
methodThatReturnsPromise() до тех пор, пока обещание не будет разрешено, после чего
код переходит к aFunctionThatReturnsPromise() и снова ждет.
Код в блоке catch запускается, если в
асинхронной функции возникает ошибка, и это произойдет, если обещание, возвращаемое
любым из методов, отклонено.
Я так понимаю, это все неверно? Чтобы перехватывать ошибки, либо поместите блок try...catch внутри myFunction(), либо перехватывайте ошибки при вызове myFunction() в глобальном контексте с помощьюmyFunction().catch((error) => console.log(error));
Подробнее здесь: https://stackoverflow.com/questions/793 ... nc-functio
Перехват ошибок из асинхронной функции в блоке try..catch вне асинхронной функции ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обновление модели в try/catch: модель запоминает ошибочные значения обновления в catch
Anonymous » » в форуме Php - 0 Ответы
- 108 Просмотры
-
Последнее сообщение Anonymous
-