У меня есть метод, который запускает два HTTP-запроса к API для получения данных.
getServerDetails(this.props.match.params.id) //1
.then(res => {
this.props.getServerDetailsAction({ success: true, data: res.data })
if (!_.isEmpty(res.data)) {
return getServerScomAlerts(res.data.ServerName) //2
}
})
.catch((err) => { //3
this.props.getServerDetailsAction({ success: false, error: err })
})
.then(res => {
if (!_.isEmpty(res)) {
this.props.getServerScomAlertsAction({ success: true, data: res.data })
}
})
.catch((err) => { //4
this.props.getServerScomAlertsAction({ success: false, error: err })
})
Методы
getServerDetails (1)
и getServerScomAlerts (2)
возвращают обещания. getServerScomAlerts (2)
зависит от результата getServerDetails (1)
Проблема в том, что если ошибка возникает в getServerScomAlerts (2)
, то выполняется первый блок перехвата (3)
. Есть ли способ, как получить данные из первого метода (1)
( без доступа к хранилищу ) и одновременно перейти к соответствующему блоку перехвата (4)
, если произошла ошибка происходит?