Будет ли внешний .catch () работать для всех цепочек / вложенных обещаний?

У меня есть небольшой процесс входа в систему, который основывается на 3 вызовах API, который выглядит следующим образом:

export const authenticationSignIn = (email, password) =>
  (dispatch) => {
    dispatch({ type: AUTHENTICATION_REQUEST });
    apiAccountStatus(email, password)
    .then(({ data }) => {
      const status = data.status;
      if (status === 'ACCOUNT_CREATED') {
        apiSignIn(email, password)
        .then(({ data: sessionData }) => {
          apiIndexAccounts()
          .then(({ data: accountsData }) => {
            dispatch({ type: AUTHENTICATION_SUCCESS });
            window.router.transitionTo('/dashboard/home');
          });
        });
      } else if (status === 'SOMETHING ELSE') {
        // TODO: HANDLE SOMETHING ELSE
      }
    })
    .catch(({ response }) => {
      dispatch({ type: AUTHENTICATION_FAILURE });
      dispatch(notificationShow('ERROR', response.data.type));
    });
  };

Как вы можете видеть, эта функция довольно многословна, но каждый вложенный вызов API основан на данных, возвращаемых предыдущим, и я пытаюсь максимально очистить ее (биты диспетчеризации зависят от избыточности, но они, по сути, запускают все, что передается). В конце вы увидитеcatch Скажите, мой вопрос, будет ли это заявление улова работать для всех обещаний или толькоapiAccountStatus?

Ответы на вопрос(1)

Ваш ответ на вопрос