В последнее время я все время сталкиваюсь с проблемой, которую я не могу воспроизвести, или обернуть голову вокруг
try {
const result = await makeReq()
console.log(result)
} catch (err) {
console.log(err)
}
Это основная c попытка уловки. Если makeReq выдает ошибку, то он будет пойман уловкой, поскольку я использую синтаксис asyn c await.
НО
в makeReq () есть некоторые ошибки, которые я не могу catch с помощью блока basi c try catch. Вместо этого мне нужно сделать что-то вроде этого.
try {
const result = await makeReq().catch(err => console.log('my interesting err: ', err)
console.log(result)
} catch (err) {
console.log(err)
}
Я бы хотел, чтобы кто-нибудь объяснил и помог мне высмеять пример этого. Я считаю, что «.catch», прикрепленный к вызову async / await «makeReq», предназначен для ошибок asyn c, возникающих внутри вызова, но я попытался воспроизвести создание запроса, отклонив новое обещание вместо базового c, и оно по-прежнему улавливается основным «catch» в блоке «try / catch».
Необработанное отклонение обещания - это то, что я получаю, если не присоединяю .catch к вызову await.
`` makeReq`` - это просто заполнитель для некоторого SAP api, в котором я использую созданные побочные эффекты (т.е. сделаю req / запустите запрос - (cds.run - если кому-то интересно))