system - 睡眠不正常

时间:2017-05-26 16:08:00

标签: javascript node.js async.js

我想将所有从数据库中获取的数据存储在arr_obj中,然后使用此变量int async.forEachLimit函数。出于这个原因,我使用了async.series函数,一切正常,除了sleep(1000),代码在async.series的第二个函数被调用后立即休眠,然后将所有结果一起给出。在NodeJs中作为初学者我不喜欢'对这一切都有很多想法。

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");
    });

1 个答案:

答案 0 :(得分:0)

尝试使用setTimeout

在foreach中使用回调
async.forEachLimit(arr_obj, function (item, callback) {
            Quality_Service.qualityService(item, function (err, data) {
                if (err) return next(err);
                setTimeout(callback, 1000, err);
            });                
        });