0
我有一点长登录过程,它依赖于3个API调用,看起来像这样的时刻:最外层的.catch()适用于所有链接/嵌套promisses吗?
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
声明,我的问题是这个声明是否适用于所有的promisses或只有apiAccountStatus
?