Javascript 如何在同步循环中使用Node.JS中的setTimeout?
我试图实现的目标是一个客户机,它以定时间隔不断地发送数据。我需要它无限期地运行。基本上是一个模拟器/测试类型的客户端 我对setTimeout有问题,因为它是在同步循环中调用的异步函数。因此,结果是data.json文件中的所有条目同时输出 但我要找的是:Javascript 如何在同步循环中使用Node.JS中的setTimeout?,javascript,node.js,Javascript,Node.js,我试图实现的目标是一个客户机,它以定时间隔不断地发送数据。我需要它无限期地运行。基本上是一个模拟器/测试类型的客户端 我对setTimeout有问题,因为它是在同步循环中调用的异步函数。因此,结果是data.json文件中的所有条目同时输出 但我要找的是: 输出数据 等10秒 输出数据 等10秒 app.js: var async = require('async'); var jsonfile = require('./data.json'); function sendDataAn
- 输出数据
- 等10秒
- 输出数据
- 等10秒
var async = require('async');
var jsonfile = require('./data.json');
function sendDataAndWait (data) {
setTimeout(function() {
console.log(data);
//other code
}, 10000);
}
// I want this to run indefinitely, hence the async.whilst
async.whilst(
function () { return true; },
function (callback) {
async.eachSeries(jsonfile.data, function (item, callback) {
sendDataAndWait(item);
callback();
}), function(err) {};
setTimeout(callback, 30000);
},
function(err) {console.log('execution finished');}
);
您应该传递回调函数:
function sendDataAndWait (data, callback) {
setTimeout(function() {
console.log(data);
callback();
//other code
}, 10000);
}
// I want this to run indefinitely, hence the async.whilst
async.whilst(
function () { return true; },
function (callback) {
async.eachSeries(jsonfile.data, function (item, callback) {
sendDataAndWait(item, callback);
}), function(err) {};
// setTimeout(callback, 30000);
},
function(err) {console.log('execution finished');}
);
也许您可以使用
setInterval
来代替?谢谢!就这样。该死的回电!:)谢谢是的,回电话。