私は ActiveX/COM を使用してブラウザー プラグインに取り組んでおり、Javascript関数をメソッド呼び出しに渡して、コールバックとして使用できるようにしようとしています。ActiveX オブジェクトのプロパティに割り当てられた関数を取得できましたが、メソッドが非同期であるため、メソッドへのすべての呼び出しは同じコールバックを共有する必要があります。
この既存の SO の質問を見たことがありますが、関数ポインターを直接扱っていないため、これがまったく同じ問題であるかどうかはわかりません。
私たちが今持っているものの例:
var obj = new MyComObject();
obj.Callback = function(id) { Console.log(id); }
obj.DoMethodCallAsync("someId");
obj.DoMethodCallAsync("someOtherId"); // Uses the same callback.
希望する APIの例:
var obj = new MyComObject();
obj.DoMethodCallAsync("someId", function(id) { Console.log("The first ID: " + id); }
obj.DoMethodCallAsync("someOtherId", function(id) { Console.log("The second ID: " + id); }