我已经阅读了异步文档,但我对(node)js很新,我不确定正确的方法。
我有一台服务器:
var client;
var connected = false;
var server = net.createServer(function(socket) {
socket.setEncoding("utf8");
client = socket;
connected = true;
console.log("Connected");
socket.on('data', function(data) {
// do something
});
socket.on("close", function() {
console.log("close");
});
});
然后我有一个异步系列。我想等到客户端连接(即connected == true
)。
async.series([
function one(next_step) {
// do something
next_step(null);
},
// wait for connected
function wait_for_client(next_step) {
async.until(
function () { return connected == true; },
function (cb) { setTimeout(cb, 10); },
function (err) { console.log("exit"); next_step(null); }
);
},
function three(next_step) {
// do something
next_step(null);
},
//
}
我不确定如何在第二步中“等待”,直到连接发生变化。 一段时间循环会阻止进程或异步处理它吗?
在async.series中等待外部事件的最佳方法是什么?
答案 0 :(得分:1)
尝试使用async.until(test,fn,callback)。 来自文档:
直到(test,fn,callback)
反复调用fn直到test返回true。在何时调用回调 停止,或发生错误。回调将传递一个错误和任何 参数传递给最终fn的回调。