У меня есть код, какПоследовательное выполнение в node.js
common.findOne('list', {'listId': parseInt(request.params. istId)}, function(err, result){
if(err) {
console.log(err);
}
else {
var tArr = new Array();
if(result.tasks) {
var tasks = result.tasks;
for(var i in tasks) {
console.log(tasks[i]);
common.findOne('tasks', {'taskId':parseInt(tasks[i])}, function(err,res){
tArr[i] = res;
console.log(res);
});
}
console.log(tArr);
}
return response.send(result);
}
});
Это не выполняется последовательно в Node.js, так что я получаю пустой массив в конце исполнения. Проблема заключается в том, что сначала выполнить console.log(tArr);
, а затем выполнить
common.findOne('tasks',{'taskId':parseInt(tasks[i])},function(err,res){
tArr[i] = res;
console.log(res);
});
Есть ли ошибка в моем коде или любой другой способ сделать это. Спасибо!
вместо итерации по result.tasks мы можем итерации объекта результата (JSON)? я попытался, но он дает мне ошибку, например Object #
Вы можете перебирать массив, находящийся в JSON ... звучит так, как будто у вас есть объект, поэтому вы не можете перебирать его. Если вам нужна помощь в обработке объекта JSON, отправьте новый вопрос. – staackuser2
Вопрос задает «Последовательное выполнение в node.js». Это делается как раз наоборот. Следовательно, мое пониженное голосование –