У меня есть проблема с использованием Node JS при выполнении синхронных вызовов .. Вот моя проблема:Node JS Синхронного
Я следующий код:
async.doWhilst(function(callback) {
//some code
callback();
}, function() {
//make a database call and based on the results I should
//return true to continue looping or false to stop here
}, function(err) {
//do some things when the loop finishes
})
Проблемы при вызове базы данных это это асинхронный вызов, и цикл продолжается до того, как будет возвращено правильное значение.
Спасибо большое за ваши комментарии, я решил эту проблему путем перемещения вызова базы данных в коде цикла, как это:
var results = []
async.doWhilst(function(callback) {
//some code
sequelize.query('some query').success(function(result) {
results = result;
callback();
});
}, function() {
//use the results variable that is fetched from the database
//return true to continue looping or false to stop here
}, function(err) {
//do some things when the loop finishes
})
Тест-функция должна быть синхронной, было бы действительно, действительно, действительно плохо, чтобы попытаться ввести асинхронный код и какой-то цикл ожидания в нем. –
Я попытался сделать это синхронным, но я не могу понять, как это проблема вызов базы данных зависит от изменения переменной в коде цикла. – Sami
Вы не можете заставить операцию async вести себя синхронно. Ты просто не можешь. Он не имеет того же времени, что и синхронная операция, и его нельзя сделать. – jfriend00