Firefoxアドオンで、非同期関数呼び出しでコールバックを待機する関数を呼び出すことができるかどうか、私はただ興味があります. 潜在的に役立つ可能性があります。
例えば
function async_func(callback) {
...
callback(2);
}
function callback_foo(x) { return x*x; }
var results = Sync.wait_for_async_callback(async_func, callback_foo);
// now, results is 2*2 = 4
....
JavaScriptエンジンは通常1スレッドであるため、同期待機、スリープインSync.wait_for_async_callback
、コールバックの呼び出し、async_func
またはから呼び出される関数を同時に実行することは許可されていませんasync_func
。
しかし、それが可能であることを示しているかもしれないこの記事を偶然見つけました。Sync.js
ただし、これに必要なモジュール(ファイル)が見つかりません。その記事のリンクは役に立たないようです (サーバー側コードのエラー?) Mozilla-central のFirefox コードはこのファイルを認識しません。
おそらく、Web Workers またはnsIThreadManagerは、非同期呼び出しを同期呼び出しに変換する別の方法である可能性があります。