У меня есть код в асинхронной c функции:
let listOfResults = [];
_.forEach(listOfProducts, async function (product) {
const result = await calc.calculateProductScore(product);
const response = await mutateDB.sendProductScoreData(result.productId, result);
await listOfResults.push(response);
})
if (listOfResults.length >= 1) {
return "yay";
} else {
return "boo";
}
Учитывая, что в массиве listOfProducts есть три элемента, прохождение отладчика в VS Code при его выполнении происходит в следующем порядке :
- строка
const result = await calc.calculateProductScore(product);
выполняется три раза - оператор if (который возвращает
boo
, поскольку в массив listOfResults
ничего не было помещено) - строка
const response = await mutateDB.sendProductScoreData(result.productId, result);
выполняется три раза - строка
await listOfResults.push(response);
выполняется трижды
Я вижу в loda sh для каждой документации https://lodash.com/docs/4.17.15#forEach упоминается, что «порядок итераций не гарантируется» - не следует ли мне использовать loda sh для этого типа блока кода? Как я могу использовать Loda sh и гарантировать такой порядок выполнения кода?