我有以下调用,该调用在cacheListener对象中异步运行方法:
ohttp.asyncOpenCacheEntry(url, 4, cacheListener);
回调对象/函数如下所示:
var cacheListener = {
onCacheEntryAvailable: function(arg1, arg2, arg3) {
// do something.
}
}
我想做的是向该回调添加一个额外的参数。我尝试在调用的末尾添加第三个参数,然后在函数定义中附加第三个参数,但是这样的传递不会正确传递(末尾为myArg):
ohttp.asyncOpenCacheEntry(url, 4, cacheListener, myArg);
这是带有额外参数的回调对象/函数的外观:
var cacheListener = {
onCacheEntryAvailable: function(arg1, arg2, arg3, myArg) {
// do something.
}
}
可以预期的是,不会传递myArg,而且我不确定如何构造允许正确传递参数的构造。
谢谢你的帮助,
最佳答案
如果您不控制使用回调的代码,则必须将其包装起来。像这样:
ohttp.asyncOpenCacheEntry(url, 4, cacheListener, {
onCacheEntryAvailable: function(arg1, arg2, arg3) {
cacheListener.onCacheEntryAvailable(arg1, arg2, arg3, myArg);
}
});
如果回调对象中还有其他方法,则也必须包装它们。