vuex中dispatch是否总是返回promise对象?

看了下vuex/src/store.js
dispatch最后是返回了Promise.all,registerAction的时候似乎也把所有action通过Promise.resolve转换成了promise对象
但有个问题是,如果action里的代码如果有错或者throw error,该错误并不能通过dispatch('someAction').then(()=>{}).catch((e)=>{console.log(e)})捕获,是不是因为在Promise.resolve()的时候就出错了?
感觉还是对promise的机制理解不透彻...

阅读 10.2k
1 个回答

应该是说在 Promise.resolve() 之前就出错了。它是先执行 handler 再包裹为 Promise,不知道为什么不包起来执行,有可能是 bug,得问官方。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏