【发布时间】:2022-08-19 14:26:48
【问题描述】:
您好,我的目标是在交易成功后清空购物车。当购物车中有不止一件商品时,它适用于一件商品(id)。
我有一个 forEach 方法,根据文档应该带一个箭头,使用 => typescript 抱怨说预期的\“,\”。我得到一个异常错误 5 is not a function, 5 is the endpoint which is an id that I\'m trying to delete 。我不明白,我将相同的代码放在 onInit 调用的函数中,它工作正常。我把它放在那里只是为了测试目的。但是当我从一个函数调用这个服务时,它会爆炸,抛出一个异常。问题是它仍然会在刷新页面时删除它抱怨的项目的 ID。我根据文档尝试了一个函数,但是我得到所有类型的错误仍然说我需要一个逗号(,)。就我做错的事情而言,有人可以指出我正确的方向吗?我将不胜感激。
下面的代码sn-p:
购物车服务
deleteCartItems(): Observable<CartItem[]> {
return this.http.get<CartItem[]>(cartUrl).pipe(
map((result: any[]) => {
let cartItems: CartItem[] =[];
for(let item of result) {
cartItems.push( new CartItem(item.id, item.size, item.product, item.imageUrl ));
alert(\"whats in item\" + item.id);
this.cartIdsArray = cartItems.map(item => item.id)
let id: number = item.id;
let endPoints = \"/cart/\" + id;
//var endPoints = \"/cart/\";
this.cartIdsArray.forEach((item.id),this.http.delete(this.url + endPoints).subscribe(data=>{
console.log(data);
})
)
}
return cartItems;
})
);
}
-
那不是有效的 TypeScript 代码,它不会编译。
-
这确实编译了我只是给了你一个代码的 sn-p 来告诉你我在哪里遇到问题,那就是 foreEach 方法
-
然后你需要提供
forEach方法的来源,因为它显然不标准。同名的内置方法只接受一个参数。 -
我进行了编辑以显示完整的功能,它确实可以编译
-
一团糟......难以理解的代码。为什么每次迭代都重新填充
this.cartIdsArray?这是什么?this.cartIdsArray.forEach((item.id),this.http.delete......从未见过这种代码结构
标签: angular typescript rxjs