#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()