我一直在处理一段代码,似乎无法弄清楚这一段。
我想做的是在客户端和运行require('net')
的服务器之间进行来回通信。我的.on('data'
事件似乎有问题,这显然是一个理解问题,但我似乎无法弄清楚。
这是我的服务器代码的片段:
server.on('connection', connection => {
// ...
connection.on('data', (data) => {
if (/list/.test(data)) {
// does something async
connection.write(listOfFiles.join('\n'));
}
// ...
它只是在尝试监听命令“列表”并在.write
事件中输出函数的结果。
这是我的客户代码的摘要:
client.on('connect', () => {
client.on('data', (data) => {
console.log(data);
askQuestion((error,answer) => {
if (error) {
return error;
} else {
client.write(answer);
}
});
});
});
具有附件功能:
const askQuestion = (callback) => {
rl.question(`> `, (answer) => {
callback(null, answer);
rl.close();
});
};
我似乎了解发生了什么,client.on('data'
从未完全解决,因此我可以一次运行命令“ list”,但是不会让我第二次运行它。那就是我有点卡住的地方。为了使代码能够正常工作,我将尝试各种重构代码的方法,但是如果有人有任何建议,我将非常感激。