我在NodeJS中编写了一个简单的服务器,除了数据库连接之外,没有使用任何框架。我有以下代码来填充数据库:
module.exports = function(callback) {
var model = require('./model');
var seedData = [
// Some seed objects
];
var count = 0;
for(var i = 0; i < seedData.length; i++) {
model.Complaint.createComplaint(seedData[i], function(err, id) {
count++;
if (count === seedData.length) {
callback();
}
});
}
};
在这里,我检查每个回调是否已执行其他回调。如果
count
是seedData
数组的长度,则调用主回调。这是管理调用异步方法的循环的好方法吗? 最佳答案
正如ShanShan在评论中提到的那样,当您需要使用许多异步函数时,Promises确实非常强大。如果您只是想简化当前脚本,Async.js可能对您有用。它允许您将循环重写为:
async.each(seedData, model.Complaint.createComplaint, callback);
并提供许多其他方法,使您可以更好地控制流程(例如,以串行或并行方式运行功能)。
关于node.js - 这是在NodeJS中控制异步的好方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34499162/