При синхронном выполнении кода исключения — очень удобный механизм обработки ошибок. Но в JavaScript очень много кода, выполняемого асинхронно — к примеру, запросы на сервер. Часто для обработки ошибок в этом случае используются коллбэки, но по удобству такая методика не сравнится с исключениями, при которых стек вызовов самостоятельно раскручивается до места перехвата.
Я долго и упорно искал что-то по этой теме, но находил только что-то вроде этого:
try {
helloWorld();
}
catch (e) {
alert(e.message);
}
function helloWorld() {
throw new Error('Hello world!');
}
Есть ли хорошие статьи по поводу обработки ошибок при асинхронном выполнении, особенно в JavaScript? Может быть, существуют специфические паттерны или малоизвестные возможности языка?