当与promises一起使用异步redux动作时,.finally不是一个函数

时间:2016-08-11 09:35:06

标签: javascript redux bluebird

我正在使用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()的解析值如何,我都会收到此错误。

有人有想法吗?

0 个答案:

没有答案