我在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();
            }
        });
    }
};


在这里,我检查每个回调是否已执行其他回调。如果countseedData数组的长度,则调用主回调。这是管理调用异步方法的循环的好方法吗?

最佳答案

正如ShanShan在评论中提到的那样,当您需要使用许多异步函数时,Promises确实非常强大。如果您只是想简化当前脚本,Async.js可能对您有用。它允许您将循环重写为:

async.each(seedData, model.Complaint.createComplaint, callback);


并提供许多其他方法,使您可以更好地控制流程(例如,以串行或并行方式运行功能)。

关于node.js - 这是在NodeJS中控制异步的好方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34499162/

10-10 00:42