Javascript 系统-睡眠无法正常工作

Javascript 系统-睡眠无法正常工作,javascript,node.js,async.js,Javascript,Node.js,Async.js,我想将从数据库获取的所有数据存储在arr_obj中,然后使用变量int async.forEachLimit函数。由于这个原因,我使用了async.series函数,除了sleep(1000)之外,其他一切都可以正常工作,只要调用async.series的第二个函数,代码就会休眠,然后一起给出所有结果 var sleep = require('system-sleep'); // // var arr_obj = []; async.series([ function

我想将从数据库获取的所有数据存储在arr_obj中,然后使用变量int async.forEachLimit函数。由于这个原因,我使用了async.series函数,除了sleep(1000)之外,其他一切都可以正常工作,只要调用async.series的第二个函数,代码就会休眠,然后一起给出所有结果

var sleep = require('system-sleep');
//
//
 var arr_obj = [];
    async.series([
        function (callback) {
            Service.listAllUser(req.body, function (err, data) {
                if(err) return callback(err);
                arr_obj = data.toJSON();
                callback();
            });
        },
        function (callback1) {
        console.log(arr_obj);
            async.forEachLimit(arr_obj, 1, function (item, callback) {
                Quality_Service.qualityService(item, function (err, data) {
                    if (err) return next(err);
                    console.log(data);
                });
                sleep(1000);
                callback();
            });
            callback1();
        }
    ], function (err) { //This function gets called after the two tasks have called their "task callbacks"
        if (err) return next(err);
        res.send("okay");
    });

尝试在foreach内部使用callback,并使用setTimeout

async.forEachLimit(arr_obj, function (item, callback) {
            Quality_Service.qualityService(item, function (err, data) {
                if (err) return next(err);
                setTimeout(callback, 1000, err);
            });                
        });

尝试在foreach内部使用callback,并使用setTimeout

async.forEachLimit(arr_obj, function (item, callback) {
            Quality_Service.qualityService(item, function (err, data) {
                if (err) return next(err);
                setTimeout(callback, 1000, err);
            });                
        });

“一起给出所有结果”是什么意思?而且,这听起来像是“按设计”工作,因为它应该在调用第二个函数后立即休眠。然后,最好使用“callback”以外的名称作为forEachLimit
函数的回调名称。最后,我想知道这里的实际问题是什么:您期望什么?尝试使用set timeout和使用counter来查看它是否通过sleep@Gyuri我希望程序在函数Quality\u Service.qualityService之后每次睡眠1000毫秒,相反,只要调用async.series中的第二个函数,它就会休眠一段时间。您使用什么来
sleep()
?一个选项是使用与async/series示例中使用的相同逻辑:在异步回调之前(或者更确切地说,在回调前后)使用
setTimeout
,而不是
sleep
,在您的例子中是callback1:当我不使用async.series并直接在函数Quality\u Service.qualityService中传递arr\u obj时,然后是sleep()每次调用函数后都要等待指定的时间。“一起给出所有结果”是什么意思?而且,这听起来像是“按设计”工作,因为它应该在调用第二个函数后立即休眠。然后,最好使用“callback”以外的名称作为forEachLimit
函数的回调名称。最后,我想知道这里的实际问题是什么:您期望什么?尝试使用set timeout和使用counter来查看它是否通过sleep@Gyuri我希望程序在函数Quality\u Service.qualityService之后每次睡眠1000毫秒,相反,只要调用async.series中的第二个函数,它就会休眠一段时间。您使用什么来
sleep()
?一个选项是使用与async/series示例中使用的相同逻辑:在异步回调之前(或者更确切地说,在回调前后)使用
setTimeout
,而不是
sleep
,在您的例子中是callback1:当我不使用async.series并直接在函数Quality\u Service.qualityService中传递arr\u obj时,然后是sleep()每次调用函数后等待指定的时间。