我只是好奇是否可以在 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 引擎通常是单线程的,因此不允许同时运行同步等待、休眠Sync.wait_for_async_callback
和调用回调async_func
或从async_func
.
但我偶然发现这篇文章可能指出这是可能的。但是我找不到这个(Sync.js
文件)所需的模块。那篇文章的链接似乎没有用(服务器端代码中的错误?)Mozilla-central上的 Firefox 代码不知道这个文件。
也许 Web Workers 或nsIThreadManager可能是将异步转换为同步调用的其他方式。