• Node处理响应逻辑管理方式:
    回调和事件监听

  • 回调处理一次性事件
    回调是一个函数,它被当作参数传递给异步函数,它描述了异步操作完成之后要做什么

  • 用事件发射器处理重复性事件
    事件发射器会触发事件,并且在那些事件被触发时能处理它们。
    事件是通过监听器进行处理的。监听器是跟事件相关的,当有一个事件出现时就会触发注册事件的回调函数。如下:
    1
    2
    3
    4
    5
    6
    7
    const net = require('net');
    const server = net.createServer(socket => {
    socket.on('data', data => { // 处理重复发生的事件
    socket.write(data);
    });
    });
    server.listen(8888);

  • 响应只发生一次的事件
    响应只有一次采用的方法是使用once方法,如下所示:
    1
    2
    3
    4
    5
    6
    7
    const net = require('net');
    const server = net.createServer(socket => {
    socket.once('data', data => { // 只是对事件产生一次响应,第一次响应之后便不在响应之后的请求
    socket.write(data);
    })
    })
    server.listen(8888)

  • 创建事件发射器: 实现一个Pub/Sub的例子
    1
    2
    3
    4
    const EventEmitter = require('event').EventEmitter;
    const channel = new EventEmitter(); // 实例化一个事件发射器对象
    channel.on('join', () => console.log('welcom')); // Sub(订阅)join事件,以及join事件被触发时的回调处理函数
    channel.emit('join'); // Pub(发布/触发)join事件

  • 异步编程
    js中的异步编程方式有如下几种:
    1. 回调函数
    2. 事件监听
    3. 发布/订阅
    4. Promise
    5. Async/Await
      参考资料:javascript异步编程的方式