繁体   English   中英

在NodeJs request.on中传递的变量

[英]variable passed in NodeJs request.on

我有这段代码将侦听器分配给请求对象,并在数据到来时执行该函数。 我的问题是,“块”变量如何在函数调用中获取其值? 这是对请求对象的某种隐式分配吗? 我在JS中看到过类似的模式,但并不太了解它们是如何工作的。 任何澄清将有所帮助。

    request.on("data",function(chunk){
        response.write(chunk.toString().toUpperCase()) ;
    })

在请求对象上(请求对象内部) emits "data"事件的代码将chunk参数传递给事件处理程序。 由于请求对象是从eventEmitter继承的,因此请求对象内要声明某些数据可用性的代码将执行以下操作:

request.emit("data", chunk);

这样,就会导致您以"data" chunk作为参数调用为"data"事件注册的事件处理程序。

这与Javascript中的任何事件处理程序相同。 触发事件的代码设置事件处理程序的参数。 您必须声明一个事件处理程序函数,该函数的参数与您将在此处进行的传递的参数匹配。

这几乎就是回调函数在Javascript中的工作方式。 回调调用的系统确定将发送回调的参数。 然后,您声明您的回调以匹配该回调,并将该回调注册到将要调用它的系统(将来的某个时候)。 在这种情况下,因为它是一个EventEmitter ,所以需要向.on()注册。 在其他情况下,可能一些其他的方式进行注册(如使用的承诺,你可以使用.then().catch()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM