我正在使用thunk中间件编写一个redux应用程序,并且遇到了有关异步操作中的promise的问题。
db.getLoggedInUser()
返回使用用户对象或null(对应于当前登录用户)实现的promise(Bluebird)。
如果用户已登录,我想获取一些相关数据,其中userActions.fetchUserInfo
是另一个异步操作(如initializeApp)。
在流程开始时,我正在调度'start_loading'动作,并且在完成所有流程之后 - 我正在调度'stop_loading'动作。
export const initializeApp = () => dispatch => {
dispatch(loadingActions.startLoading());
return db.getLoggedInUser()
.then((user) => {
if (user) {
return dispatch(userActions.fetchUserInfo(user.id));
}
})
.catch(dbError => dispatch(errorActions.reportError(dbError.message)))
.finally(() => dispatch(loadingActions.stopLoading()));
};
调度initializeApp()时出现以下错误:
db.getLoggedInUser(...)。then(...)。catch(...)。finally不是函数
无论getLoggedInUser()的解析值如何,我都会收到此错误。
有人有想法吗?