res.on() 方法的含义是什么?

Tan*_*rma 4 node.js

我对 Node.js 完全陌生,因此我无法从文档中理解这个函数是如何工作的。考虑到我是初学者,有人可以为我提供 on() 方法的简单解释吗?谢谢。

const https = require('https');

const options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};

const req = https.request(options, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

req.on('error', (e) => {
  console.error(e);
});
req.end();
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 13

res是来自响应的传入数据的读取流。Node.js 中的流派生自EventEmitter 对象- 它们有许多可以监听的事件。

.on()流上的方法是为特定事件注册侦听器的方式。

res.on('data', ...)是您为事件注册侦听器的方式data,并且data事件是您从传入流接收数据的主要方式。该侦听器将使用到达的数据块被调用一次或多次。

另一个重要事件是end告诉您已到达数据末尾的事件 - 没有更多数据。

您可以在此处查看 readStream 上的各种事件和方法。

  • @HeshanKumarasinghe - `res.on()` 是 `res.addListener()` 的别名。他们是一样的东西。请参阅 [addListener 和 on 有什么区别](/sf/ask/2090312591/ Between-addlistenerevent-listener-and-oneevent-listen/29861649#29861649) 了解更多解释。 (2认同)