#angular #typescript #async-await #angular8 #angular2-routing
#angular #typescript #асинхронный -ожидание #angular8 #angular2-маршрутизация
Вопрос:
Здесь я хочу проверить, что запас каждого продукта меньше количества.. Если какое-либо количество продукта превышает запас, то на консоли должно отображаться сообщение об отсутствии товара. Но здесь условие работает до foreach .. Он не проверяет условие в цикле .. как решить это с помощью метода async / await..
TS
stockFlag=false
orderProducts(){
this.cartDatas.forEach(element => {
this.cartService.checkAvailability(element.productId.id).subscribe((data:any)=>{
if( data.message < Number( element.quantity))
{
this.stockFlag = true
}
})
console.log(!this.stockFlag)
})
if(this.stockFlag){
this.route.navigate(['newpage'])
}else{
console.log("out of stock")
}
}
Ответ №1:
if( data.message < Number( element.quantity))
я думаю, у вас там опечатка: удалите
if(data.message < Number( element.quantity))
(а может быть, data.message — это, вероятно, строка?)
Комментарии:
1. ошибка в типе отсутствует, проблема заключается в том, что перед каждым обрабатывается внешнее условие..