Javascript .finally在使用带有承诺的异步redux操作时不是函数

Javascript .finally在使用带有承诺的异步redux操作时不是函数,javascript,redux,bluebird,Javascript,Redux,Bluebird,我正在使用thunk中间件编写一个redux应用程序,在异步操作中遇到了一个关于承诺的问题 db.getLoggedInUser()返回一个承诺(Bluebird),该承诺由用户对象或null(对应于当前登录的用户)实现。 如果用户已登录,我希望获取一些相关数据,其中userActions.fetchUserInfo是另一个异步操作(如initializeApp) 在流程开始时,我调度“开始加载”操作,在所有流程完成后,我调度“停止加载”操作 export const initializeApp

我正在使用thunk中间件编写一个redux应用程序,在异步操作中遇到了一个关于承诺的问题

db.getLoggedInUser()
返回一个承诺(Bluebird),该承诺由用户对象或null(对应于当前登录的用户)实现。 如果用户已登录,我希望获取一些相关数据,其中
userActions.fetchUserInfo
是另一个异步操作(如initializeApp)

在流程开始时,我调度“开始加载”操作,在所有流程完成后,我调度“停止加载”操作

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()的解析值是多少,我都会收到此错误。


有人有想法吗?

。最后,
是一个(非标准的)蓝鸟承诺概念-在你的代码中没有任何迹象表明你实际上在使用蓝鸟承诺,除了[[tag]]和你试图使用这种非承诺/a+方法的事实所有证据都表明,
db.getLoggedInUser()
没有回复蓝鸟的承诺。你能告诉我们它的实现吗?你们都是对的。这是我的错误。虽然db.getLoggedInUser()是我的函数(不是外部API),但我返回了es6承诺,而不是Bluebird。对不起,我的错。最后,是一个(非标准的)蓝鸟承诺概念-在你的代码中除了[[tag]]之外,没有任何迹象表明你实际上在使用蓝鸟承诺,而且你正在尝试使用这个非承诺/a+方法。所有证据都表明,
db.getLoggedInUser()
没有回复蓝鸟的承诺。你能告诉我们它的实现吗?你们都是对的。这是我的错误。虽然db.getLoggedInUser()是我的函数(不是外部API),但我返回了es6承诺,而不是Bluebird。对不起,我的错。现在在规范中