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被調用。 –