我试图实现的目标是一个不间断地发送数据的客户端。我需要它无限期地运行。基本上是模拟器/测试类型的客户端。如何在同步循环内的Node.JS中使用setTimeout?
我遇到了setTimeout的问题,因为它是在同步循环内调用的异步函数。所以结果是data.json文件中的所有条目都是同时输出的。
但我正在寻找的是:
- 输出数据
- 等待10秒
- 输出数据
- 等待10秒
- ...
应用。 js:
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');}
);
也许你可以使用'setInterval'呢? – user2428118