将附加参数传递给Javascript回调函数 [英] Pass additional parameter to Javascript callback function

查看:134
本文介绍了将附加参数传递给Javascript回调函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在Node.JS应用程序中观看少量目录:

 函数已更新(event,filename) {
log(CHANGED\t / share / channels /+ filename);
}
for(i in channels)
fs.watch('share / channels /'+ channels [i],{persistent:false},updated);问题是fs.watch只传递文件名到回调函数,而不包括它的目录​​。有没有办法我能以某种方式传递一个额外的参数到updated()函数,所以它知道文件的位置?



我想我正在寻找类似于Python的 functools.partial ,如果这有助于任何。

解决方案

您可以使用 Function.bind

 函数已更新(extraInformation,event,filename){
log \t / share / channels /+ extraInformation + filename);
}

for(i in channels)
fs.watch('share / channels /'+ channels [i],{persistent:false},
updated .bind(null,'wherever / it / is /'));


I need to watch a small number of directories in a Node.JS application:

function updated(event, filename){
    log("CHANGED\t/share/channels/" + filename);
}
for(i in channels)
    fs.watch('share/channels/' + channels[i], {persistent: false}, updated);

The problem is that fs.watch only passes the filename to the callback function, without including the directory it's in. Is there a way I can somehow pass in an extra parameter to the updated() function so it knows where the file is?

I think I'm looking for something similar to Python's functools.partial, if that helps any.

解决方案

You can use Function.bind:

function updated(extraInformation, event, filename) {
    log("CHANGED\t/share/channels/" + extraInformation + filename);
}

for(i in channels)
    fs.watch('share/channels/' + channels[i], {persistent: false},
              updated.bind(null, 'wherever/it/is/'));

这篇关于将附加参数传递给Javascript回调函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆