您可能已经知道,事情在node.js中异步运行。因此,当您需要使事物按特定顺序运行时,您需要利用控件库或基本上自己实现。
我强烈建议您看一下async,因为它可以轻松地使您执行以下操作:
var async = require('async');// ..if(result.tasks) { async.forEach(result.tasks, processEachTask, afterAllTasks); function processEachTask(task, callback) { console.log(task); common.findOne('tasks', {'taskId':parseInt(task)}, function(err,res) { tArr.push(res); // NOTE: Assuming order does not matter here console.log(res); callback(err); }); } function afterAllTasks(err) { console.log(tArr); }}在这里看到的主要内容是,每个任务并行调用了processEachTask,因此不能保证顺序。要标记任务已处理,您将从中调用
callback匿名函数
findOne。这使您可以进行更多的异步工作,
processEachTask但仍然可以表示何时完成。完成所有任务后,它将调用
afterAllTasks。
看一看异步,看看它提供的所有辅助功能,这非常有用!



