Перенаправление Angular 8 на другой компонент после цикла проверки условий

#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. ошибка в типе отсутствует, проблема заключается в том, что перед каждым обрабатывается внешнее условие..