我想将所有从数据库中获取的数据存储在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");
});
答案 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);
});
});