2011-10-20 10 views
0

に余分な変数を渡す私は非同期cacheListenerオブジェクト内のメソッドを実行し、次の呼び出しがあります。コールバック

var cacheListener = { 
    onCacheEntryAvailable: function(arg1, arg2, arg3) { 
    // do something. 
    } 
} 

何:ここ

ohttp.asyncOpenCacheEntry(url, 4, cacheListener); 

は、コールバックオブジェクト/関数は次のようになりますが私はそのコールバックに余分な引数を追加することを試みています。私は、コールの終了時に、その後、関数定義で三番目の引数を追加しようとしましたが、それは(最後にmyArg)このように適切に渡され得ることはありません。

ここ
ohttp.asyncOpenCacheEntry(url, 4, cacheListener, myArg); 

は何コールバックですオブジェクト/機能は、追加の引数を持つようになっています

var cacheListener = { 
    onCacheEntryAvailable: function(arg1, arg2, arg3, myArg) { 
    // do something. 
    } 
} 

myArgが、期待通り、渡されていない、と私は、引数を正しく渡すことができるようになるために構築物を作製するかどうかはわかりません。あなたは、あなたのコールバックを使用していたコードをコントロールしていない場合は、それをラップする必要があるとしているあなたの助けを

おかげで、

+0

私が考えていることは、このコードをすべて同じオブジェクトの下に置き、これらのすべての方法で共有される「データ」プロパティを作成することです。このように私は何も渡す必要はありません。 –

答えて

2

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

コールバックオブジェクトに他のメソッドがある場合は、それらもラップする必要があります。

+0

働いて、ありがとう! –

関連する問題