У меня есть эта петля в приложении Node и Mongo. console.log
правильно выведет все «товарные» имена, однако rank
обычно не устанавливается правильно в базе данных. Интересно, что если я поставил в программу контрольную точку отладки и медленно продвигаюсь, она работает. Любая идея, если есть какое-то состояние гонки, и какое лучшее решение для этой работы?Обновление NodeJS и MongoDB
async.each(sortedProductsArray, function (product, callback) {
console.log(product.name);
var query = {
productNo: product.productNo
};
var index = sortedProductsArray.indexOf(product)+1;
var update = {
// give it a rank
$set: { 'rank': index }
};
// main products array
products.update(query, update, callback);
});
Я собираюсь изменить свой вопрос, потому что я упростил то, что у меня есть и я понимаю, что это, вероятно, немного вводит в заблуждение. Массив, который зацикливается, должен быть отдельным «отсортированным» массивом – timhc22
в любом случае, вы все равно должны использовать forEachOf, а не indexOf, поскольку это петля внутри вашего асинхронного цикла, - indexOf также может быть медленным на больших индексах –
круто спасибо, я это изменю! – timhc22