我的购物车有一个立即购买按钮,如果我点击它,它会在后端推送商品详情,退货,然后自动导航到购物车。
请查看我目前的实施情况。
addItem(){
if(!localStorage.getItem('currentUserToken')){
this._router.navigate(['/login']);
} else {
this.product[0].userId = localStorage.getItem('currentUserId');
console.log(this.product);
this._productsService.addToCart(this.product)
.subscribe((updated) => console.log(updated),
err => console.log(err));
}
}
buyNow(){
this.addItem();
this._router.navigate(['/cart']);
}
这里的问题是导航比后端推送到数据库并返回到angular2更快。我怎么能等待完成然后导航的决心?
答案 0 :(得分:1)
您需要在收到后端回复后重定向:
addItem(){
if(!localStorage.getItem('currentUserToken')){
this._router.navigate(['/login']);
} else {
this.product[0].userId = localStorage.getItem('currentUserId');
console.log(this.product);
this._productsService.addToCart(this.product)
.subscribe((updated) => {
console.log(updated);
this._router.navigate(['/cart']);
},
err => console.log(err));
}
}
buyNow(){
this.addItem();
}