在过去的几周中,我一直在编写一些浏览器扩展,直到今天,我认为Firefox的WebExtension应该可以在Chrome中自动运行。因此,我尝试根据Mozilla的示例编写代码。
但是今天,我意识到Chrome扩展程序的API文档中没有提到Promises。
我在所有扩展中的代码中都严格使用了Promises。
所以现在我的问题是,我的代码可以在Chrome中运行吗?还是如果我var browser = chrome
在最顶部添加一个声明,它会起作用吗?
还是Chrome根本不支持API上的Promises?
如果Chrome尚不支持API函数上的Promises,将来会支持它们吗?
注意,我知道这个项目:https : //github.com/mozilla/webextension-polyfill
但是我不愿意在所有地方都包含该库的麻烦。此外,它还有令人讨厌的错误。
除此之外,我没有Chrome或Chromium,并且出于隐私和安全原因也无法安装它们。
官方的Promise支持终于来了,并且已经在某些API上实现了。在撰写本文时:
在GoogleChrome的Github上,您已经可以使用带有Promises的chrome.tabs API找到一个Hello world示例(等待):
chrome.runtime.onInstalled.addListener(async () => {
let url = chrome.runtime.getURL("hello.html");
let tab = await chrome.tabs.create({ url });
console.log(`Created tab ${tab.id}`);
});
如您所见,promise支持仅在chrome
对象上实现,现在支持Promises和回调。Firefox仍将browser
对象用于Promise API。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句