Я пытаюсь избежать упаковки всех моих ожидаемых вызовов в асинхронную c лямбду с попыткой перехвата. Я хочу перехватывать и отправлять пользовательские сообщения об ошибках, но синтаксически оборачивать каждый ожидаемый вызов в try / catch по сравнению с .catch()
. Есть ли способ сделать что-то вроде этого:
exports.hanlder = async (event, context, callback) => {
const foo = await bar(baz).catch((error) => {
eventResponse.statusCode = 503;
eventResponse.body = JSON.stringify({ message: 'unable to bar' , error});
// normally we'd callback(null, eventResponse)
});
Без упаковки в try / catch, как это?
exports.hanlder = async (event, context, callback) => {
let foo;
try {
foo = await bar(baz);
} catch (error) {
eventResponse.statusCode = 503;
eventResponse.body = JSON.stringify({ message: 'unable to bar', error});
return eventResponse;
}
// then do something else with foo
if (foo.whatever) {
// some more async calls
}
Это просто нехорошо иметь кучу попыток / поймать, когда у вас есть 7 ожидаемых вызовов в одной лямбде. Есть ли более красивый способ сделать это, используя встроенное обещание .catch()
?