Это зависит от того, что вы имеете в виду под «проблемой», но этот код:
async function f2() {
await f1().catch(ex => { /* ... code in catch ... */ }) // this is what I mean
}
эквивалентен:
async function f2() {
try {
await f1()
} catch (ext) {
/* ... code in catch ... */
} // this is what I mean
}
И, как вы сказали, это может быть полезно использовать .catch
вместо try-catch
как есть - не во всех случаях - сделать ваш код более читабельным. Но вы всегда должны думать о том, является ли .catch
правильным выбором для удобства чтения. Он хорошо работает, если вы используете его для обработки исправимых ошибок.