ReactJS и Promise: как тогда вызвать catch внутри? - PullRequest
0 голосов
/ 12 октября 2018

Итак, у меня есть создатель действия (который возвращает функцию - я использую redux-thunk).Внутри функции, которую возвращает создатель, я вызываю метод отправки и соединяю методы then и catch.Вот как это выглядит:

export function actionCreator(someData) {
    (dispath, getState) => {
        return dispatch(someAction)
        .then(resp => {
            //do something
            // GO TO CATCH
        })
        .catch(err => {
            return err;
        })
    }
}

Вы видите комментарий GO TO CATCH там?Итак, как я могу перейти к блоку catch оттуда?

Спасибо!

1 Ответ

0 голосов
/ 12 октября 2018

Если вы хотите перейти от тела .then() к следующему .catch(), самый простой способ - выдать ошибку:

throw new Error('I meant to blow up here.');

Ошибка, которую вы выбросите, - это то, что будет переданок телу .catch() (переменная err, в вашем случае).

Обратите внимание, что ваш пример уже выглядит подозрительно: ваш блок catch обнаруживает ошибку, а затем возвращает это как если бы ошибка была обычным значением, что означает, что любая обработка на основе обещаний в восходящем направлении будет предполагать, что отправка прошла успешно.Вы уверены, что это то, что вы хотите?

...