想问一下这里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回答
-
this.$store.dispatch('fetchProducts')
这里可以加上 await,是 ok 的。
我最初实现的时候,是这样设想的,如果是 delete 操作,属于敏感操作,最好是当前的这个请求彻底结束后,再往下进行,也就是单线操作,而 fetch 这个列表,可以异步的执行,什么时候获取什么时候去展现没太大关系。
不过你很细心,我觉得这块加上 await 好了,去先拿这些数据
00
相似问题