1
我想将所有从数据库中取出的数据存储在arr_obj中,然后使用这个变量int async.forEachLimit函数。出于这个原因,我使用async.series函数,除睡眠(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");
});
什么是 “把所有的结果一起” 是什么意思?此外,它听起来像这样“按设计”工作,因为它*应*睡在第二个函数被调用后。然后,使用除“callback”之外的东西作为forEachLimit'function'的回调名称可能是个好主意。最后,我想知道这里的实际问题是什么:你期待什么? – Gyuri
尝试使用设置的超时时间,并使用计数器来查看它是否通过睡眠 – atjoshi
@Gyuri我希望程序应该在函数Quality_Service.qualityService之后每次睡眠1000毫秒,而不是在第二个函数进入睡眠一段时间后async.series被调用。 –