Сбрасывается ли событие l oop в node js при возникновении ошибки? - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь выполнить код, который выдает ошибку при выполнении кода. Я хочу знать, очищается ли асинхронный вызов при возникновении ошибки?

Например:

try{
  axios(api) // will asynchronous call continue to execute even though error is thrown?
  throw new Error();
}catch(e){

}

1 Ответ

1 голос
/ 26 мая 2020

Вызов axios() запустит все операторы внутри функции axios, некоторые из которых вызовут фоновое задание. Затем он выдает (и улавливает) ошибку. Затем, когда фоновое задание выполнено, оно помещает событие и функцию обратного вызова в очередь событий l oop.

Исключение (особенно если оно будет обнаружено) не очистит никакие запущенные фоновые задания, оно не иметь какие-либо знания о них, и было бы довольно запутанным действием на расстоянии отменять фоновые задания только в том случае, если исключение происходит где-то в другом месте приложения.

Это может произойти только тогда, когда исключение не поймано, и в этом случае node.js приводит к сбою всего процесса, останавливает событие l oop и уничтожает все фоновые задания.

...