获取异步父函数的参数
Get an argument of an asynchronous parent function
>我有这个:
function change( event, file ) {
console.log( "filename", file );
//It should be '_file', not 'file'.
files.clients( file, function( clientOfFile ) {
console.log( "for client:", clientOfFile );
io.sockets.socket( clientOfFile ).emit( "change" );
} );
}
client.on( "watch", function( file ) {
_file = base + file; //filename with path
files.add( _file, client.id );
fs.watch( _file, change );
} );
fs.watch
传递一个没有路径的文件名回调。所以我希望它_file
获取父函数参数。我以为我可以使用.call
,但是如何在回调中做到这一点?
有很多可能性,一种是使用 Function.prototype.bind
,如果您不需要在回调中访问原始this value
:
fs.watch( _file, change.bind({_file: _file});
这样您就可以访问_file
例如
this._file;
在回调方法中。
需要注意的是:请注意,您在回调方法中使用了另一个匿名函数来回调files.clients
。 this
不会在其中引用相同的值。因此,如果你想在那里访问我们新传递的this
引用,你需要调用另一个.bind()
调用,或者只是在局部变量中存储对this
的外部引用。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆