在一般的项目当中,是存在删除某个商品的请求接口的,然后我们需要去通过这个接口去实现将选中食物商品一起删除
①设置点击事件,派发Vuex里面的action里面的方法,使用异步的方法
async deleteAll()
{
try {
await this.$store.dispatch('shopcart/deleteAllCart');
this.getData();
} catch (error) {
alert(error.message);
}
}
},
②Vuexl里面actions里面的deleteAllCart方法,里面context是一个对象,为上下文对象,使用dispatch去调用actions里面的其他方法,得到都是一个promise,必须要所有的promise的状态是
成功的,所以使用Promise.all()这个方法,里面是多个promise,一般是一个数组,只有当这里面的promise都是成功,Promise.all()返回的才是成功的。
deleteAllCart(context)
{
let PromiseAll = [];
context.state.carLsit.forEach(element => {
if(element.isChecked == 1)
{
let promise = context.dispatch('deteleCart',element.skuId);
PromiseAll.push(promise);
}
});
// all这个函数表示的是里面的每个promise都是成功才返回成功
return Promise.all(PromiseAll);
},