По сути, у меня есть асинхронная c функция, содержащая try / catch, которая вызывает другую асинхронную c функцию, также содержащую try catch, и я немного запутался, как правильно реализовать то, что я делаю. Какой-то «псевдокод», показывающий мою текущую реализацию:
const main = async () => {
try {
const test = await secondFunc();
console.log(test);
} catch(err) {
console.log('Found an error!');
console.log(err);
}
const secondFunc = async () => {
try {
await performSomeRequestExample();
} catch(err) {
if (err.x === 'x') {
doSomething();
} else {
//********
throw err;
//********
}
}
Итак, я пытаюсь сделать так, чтобы throw(err)
(окруженный звездочками) был пойман catch
в main()
который также вызовет console.log('Found an error!')
, но в настоящее время происходит ошибка из secondFunc()
, catch
в main()
никогда не срабатывает, и я получаю необработанное отклонение обещания.
Любое руководство на что я делаю не так?