0

我有以下调用,它异步运行 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 没有通过,而且我不确定如何创建一个允许正确传递参数的构造。

谢谢你的帮助,

4

1 回答 1

2

如果您不控制使用回调的代码,您将不得不将其包装起来。像这样的东西:

ohttp.asyncOpenCacheEntry(url, 4, cacheListener, {
    onCacheEntryAvailable: function(arg1, arg2, arg3) {
        cacheListener.onCacheEntryAvailable(arg1, arg2, arg3, myArg);
    }
});

如果回调对象中还有其他方法,那么您也必须包装它们。

于 2011-10-20T01:13:05.710 回答