Node.js - Javascript - 如何将变量传递给回调函数
Node.js - Javascript - How to pass variables to a callback function
我正在使用 Node.js 流并最终在几个地方得到类似的东西:
var myVariable = 'XXX';
...
.on('end', function() {
// do something with myVariable
});
函数的行为是相同的,但取决于一个变量,所以我想将其重构为:
var myVariable = 'XXX';
...
.on('end', myFunction);
function myFunction(param){
// do something with param
}
如何在调用 .on('end', myFunction);
中传递 myVariable
的值?
您将创建一个 returns 自定义函数用作回调的工厂。
function myFactory(param) {
return function(e) {
console.log( 'param value:', param );
// do something
}
}
你会这样使用它:
.on('end', myFactory(1));
.on('end', myFactory(2));
如果 "end" 事件将一些参数传递给回调,而不是事件对象或除了事件对象之外,将它们添加到返回函数的参数列表中 (return function(e, foo, bar) { ...
)
你的回调函数应该这样定义:
function myCallback(myParam) {
// do some stuff
return myReturn;
}
当你声明你的侦听器时,"on" 方法应该采用事件的名称,以及你的方法回调的引用:
.on('eventName', myCallback);
并且当您发出事件时,您可以在此处传递参数:
emit('eventName', myParam);
然后在您的回调中,您可以检索参数
我正在使用 Node.js 流并最终在几个地方得到类似的东西:
var myVariable = 'XXX';
...
.on('end', function() {
// do something with myVariable
});
函数的行为是相同的,但取决于一个变量,所以我想将其重构为:
var myVariable = 'XXX';
...
.on('end', myFunction);
function myFunction(param){
// do something with param
}
如何在调用 .on('end', myFunction);
中传递 myVariable
的值?
您将创建一个 returns 自定义函数用作回调的工厂。
function myFactory(param) {
return function(e) {
console.log( 'param value:', param );
// do something
}
}
你会这样使用它:
.on('end', myFactory(1));
.on('end', myFactory(2));
如果 "end" 事件将一些参数传递给回调,而不是事件对象或除了事件对象之外,将它们添加到返回函数的参数列表中 (return function(e, foo, bar) { ...
)
你的回调函数应该这样定义:
function myCallback(myParam) {
// do some stuff
return myReturn;
}
当你声明你的侦听器时,"on" 方法应该采用事件的名称,以及你的方法回调的引用:
.on('eventName', myCallback);
并且当您发出事件时,您可以在此处传递参数:
emit('eventName', myParam);
然后在您的回调中,您可以检索参数