Javascript Firefox插件:同步通信?

Javascript Firefox插件:同步通信?,javascript,firefox,firefox-addon,firefox-addon-sdk,synchronous,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,Synchronous,我目前正在寻找一个类或其他东西,它可以与选项卡的Javascript进行同步通信 使用默认API动态操作网站是一件痛苦的事情。 如果我们能做这样的事情,那就太好了: var tabs = require('sdk/tabs'); var exampleElement = tabs.activeTab.document.getElementById('exampleId'); console.log(exampleElement.innerHTML); exampleElement.style.w

我目前正在寻找一个类或其他东西,它可以与选项卡的Javascript进行同步通信

使用默认API动态操作网站是一件痛苦的事情。 如果我们能做这样的事情,那就太好了:

var tabs = require('sdk/tabs');
var exampleElement = tabs.activeTab.document.getElementById('exampleId');
console.log(exampleElement.innerHTML);
exampleElement.style.width = '200px';

那么是否有一个类/库允许我这样做,或者你能告诉我如何使类似的事情成为可能?我真的是个新手…

如前所述,这在插件SDK中是不可能的。您可以使用非SDK代码进行同步通信,但如果Firefox切换到多进程架构,它将停止工作。对于新代码,通常建议使用异步API。

如前所述,使用插件SDK是不可能的。您可以使用非SDK代码进行同步通信,但如果Firefox切换到多进程架构,它将停止工作。对于新代码,通常建议坚持使用异步API。

一个选项是使用内置的promise库包装异步调用:


这种开发风格比同步调用稍显迟钝,但在使用多个/嵌套回调时确实避免了“回调地狱”。

一个选项是使用内置的promise库包装异步调用:


这种开发风格比同步调用稍显迟钝,但在使用多个/嵌套回调时,它确实避免了“回调地狱”。

但不应该将异步API包装成同步API吗?可能是这样的:可能不使用while循环,但可能还有其他东西可以使用?请参阅,但不应该将异步API包装为同步API吗?也许是这样的:可能不会有一个while循环,但也许你还可以使用其他东西?好吧,这是个好消息。所以这实际上是可能的。但是,有没有人编写了一个很好的类,允许我直接调用一个标签javascript,就像我的示例中的问题一样?我不太理解Promissions API:我如何使这段代码同步:你能给我举个例子吗?我真的很感激。你不能让它同步-SDK故意避免同步API。要么你接受并使用回调,要么你学会了承诺。只是JS…好吧,这是个好消息。所以这实际上是可能的。但是,有没有人编写了一个很好的类,允许我直接调用一个标签javascript,就像我的示例中的问题一样?我不太理解Promissions API:我如何使这段代码同步:你能给我举个例子吗?我真的很感激。你不能让它同步-SDK故意避免同步API。要么你接受并使用回调,要么你学会了承诺。只是JS。。。