просто вижу два варианта: использовать try/catch на каждый возможный promise rejection, либо заворачивать всё в try/catch:
первый вариант:
const load = id => async (dispatch, getState) => {
let response
try {
response = await fetch(...)
} catch (err) {
// чё-то делать с ошибкой
}
let data
try {
data = await response.json()
} catch (err) {
// ...
}
// ...
}
второй вариант:
const _load = id => async (dispatch, getState) => {
const response = await fetch(...)
const data = await response.json()
// ...
}
const load = async id => {
try {
_load(id)
} catch (err) {
// ...
}
}
Смешивать оба подхода
Хитрый план es: 0. Никто не пишет try-catch и не обрабатывает ошибки 1. Придумаем, т.е. заимствуем и распиарим промисы 2. Сделаем так, чтобы без .catch было не удобно 3. Притащим async/await 4. PROFIT. Все вынуждены вспоминать что такое try-catch
Обсуждают сегодня