Дождитесь асинхронного начала

#vue.js

Вопрос:

Мне нужно остановить мою функцию myFunction() для обработки, если в JSONArray будет найдено нулевое значение, называемое this.constraint.costs.

это моя 1-я функция :

 myFunction(){  if(this.zeroValueCosts()){  console.log(" Found an integer 0 value, I need to stop my function")  return;  }; }  

это моя вторая предполагаемая асинхронная функция :

 async zeroValueCosts(){  await this.constraint.costs.forEach(function(cost){  if(cost.value = 0){  return true;  }  else{  return false;  }  });  }  

Это не работает, ошибка не отображается

Как правильно использовать async/await с результатом цикла forEach ?

Это массив this.constraints.costs :

 costs: [{  "name": "new cost",  "value": 0.06666  },{  "name": "new cost 2",  "value": 0.05666  }]  

Комментарии:

1. Я думаю, что вам нужно либо .map или .every метод, либо нет forEach . Array.forEach метод не имеет возвращаемого значения. А также вам не нужно использовать async/await здесь.

2. Да; const res = constraint.costs.map(cost =gt; cost.value !== 0)

Ответ №1:

Ну, вам даже не нужно асинхронное ожидание

 async myFunction(){  if(this.zeroValueCosts()){  return;  }; }  zeroValueCosts(){  return constraint.costs.some(({ value }) =gt; value === 0); }  

Комментарии:

1. На самом деле ему даже не нужен async модификатор — так как ни один из показанных кодов не является асинхронным.

2. @IVOGELOV да, забыл удалить его

3. @harmoniuscool ваше значение 0,066666 может быть строкой, а не целым числом?

4. Я отредактировал свой пост.

5. Это не целое число, я проверил его с помощью typeof()