节点客户端服务器在数据事件上的交互

时间:2019-07-07 21:07:01

标签: javascript node.js callback

我一直在处理一段代码,似乎无法弄清楚这一段。

我想做的是在客户端和运行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”,但是不会让我第二次运行它。那就是我有点卡住的地方。为了使代码能够正常工作,我将尝试各种重构代码的方法,但是如果有人有任何建议,我将非常感激。

0 个答案:

没有答案