我正在用 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
数组的长度,我将调用主回调。这是管理调用异步方法的循环的好方法吗?
最佳答案
正如杉杉在评论中已经提到的,Promises当您需要使用大量异步函数时,它们非常强大。如果您只是想稍微简化当前的脚本,Async.js可能对你有用。它允许您将循环重写为:
async.each(seedData, model.Complaint.createComplaint, callback);
并提供了许多其他方法,使您可以更好地控制流程(例如串行或并行运行函数)。
关于node.js - 这是在 NodeJS 中控制异步的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499162/