想问一下这里action的问题

来源:7-5 开发后台商品增删改查页面及功能

mylovef

2017-08-17

vuex  action里面有异步操作,这我能理解,但在async created中,老师直接写了this.$store.dispatch(...)但在 async showProduct 等里面,老师都写了await this.$store.dispatch(...),所以想知道老师为什么这么写呢?

补充说明一下:

product.vue里面,代码是这样的

async created () {

    this.$store.dispatch('fetchProducts')

  },

async deleteProduct (item) {

      await this.$store.dispatch('deleteProduct', item)

    }

这里deleteProduct仅仅是触发一个事件,后面并不会影响别的代码执行

这created( )里面没用那个await,deleteProduct里面使用了await,同样触发异步action,两种方式有什么不同呢?

PS:后面有诸如 const res=await this.$store.dispatch.......这样的我可以理解,因为不异步拿不到数据

翻了一下api,在官网的例子里面,虽然action里面有异步操作,但如果仅仅进行触发dispatch,在vue组件里面是不需要使用async来dispatch的,除非触发dispatchA之后还要做一些事情,或者获取一些数据,才需要使用async,所以对这里有疑问,谢谢

写回答

1回答

Scott

2017-08-27

this.$store.dispatch('fetchProducts')


这里可以加上 await,是 ok 的。


我最初实现的时候,是这样设想的,如果是 delete 操作,属于敏感操作,最好是当前的这个请求彻底结束后,再往下进行,也就是单线操作,而 fetch 这个列表,可以异步的执行,什么时候获取什么时候去展现没太大关系。


不过你很细心,我觉得这块加上 await 好了,去先拿这些数据

0
0

开发微信全家桶项目Vue/Node/MongoDB高级技术栈全覆盖

Nuxt/Vue SSR + Koa2 跨栈开发微信公众号+小程序

989 学习 · 401 问题

查看课程