我有代碼等順序執行
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)嗎?我試過,但它給了我一個錯誤,如對象#
您可以遍歷JSON中的數組...儘管您聽起來像是有一個對象,所以您無法迭代該對象。如果您在處理JSON對象時需要幫助,請發佈一個新問題。 – staackuser2 2012-03-12 14:07:20
問題要求「在node.js中順序執行」。這完全相反。因此我投了票 – 2014-10-01 10:56:20