如何将此参数传递给侦听器?

时间:2016-02-15 21:20:18

标签: javascript node.js callback

use strict;

var fs = require('fs);

var readable = fs.createReadStream(__dirname + '/greet.txt', {encoding: 'utf8', highwaterMark: 32 * 1024 });

readable.on('data', function(chunk) {
  console.log(chunk.length)
});

如果我理解正确,在节点中,可读流继承自EventEmitter,它允许它使用listener / .on方法。

但是,callback:,function(chunk){console.log(chunk.length)}如何知道chunk参数的值?

2 个答案:

答案 0 :(得分:1)

EventEmitter实例有一个名为" emit"的方法,所以在fs readstream中的某个地方,就像这样调用

emitter.emit('data', chunk);

https://nodejs.org/api/events.html#events_passing_arguments_and_this_to_listeners

答案 1 :(得分:0)

回答你的评论,不,听众没有发现任何东西。反过来说,fs.createReadStream()是一个事件发射器。 readable.on('data', function() { ... })表示"可读,请在您发出数据时调用此函数"事件&#34 ;. 可读发出数据事件时,如果数据包含"提供",则调用所有已注册的侦听器(在您的示例中仅为function(chunk))并提供文档中详细说明的参数。