【发布时间】:2015-12-30 23:59:35
【问题描述】:
我正在将我的 Firefox 扩展程序移植到 Chrome,并且缺少同步首选项服务让生活变得有趣。
我有一个供我的用户使用的选项页面,我正在使用这里的方法:https://developer.chrome.com/extensions/options。我将运行内容脚本以从页面获取数据并使用 sendMessage 向后台脚本发送/接收回调。
内容脚本需要访问我的扩展选项。它在处理之前需要这些。当然,存储 API 是异步的。我试过用 Stratify.js 作弊来强制 Storage API 同步运行,但这太丑陋了。
这让我编写这样的代码:
chrome.storage.sync.get(defaultPrefs, function(myPrefs) {
//Do all my webpage processing here,
//basically writing my entire Extension inside
// this call to chrome.storage.sync.get()
}
我之前看到过一些解决方案提出的这个问题,但他们大多使用 localStorage,因为我想从这里使用我的偏好,所以这不起作用。
这感觉不对,但如果我打算将存储同步 API 用于我的扩展首选项,那么我有点卡住了。我使用的 localStorage 解决方案主要涉及对 sendMessage 的调用,这让我陷入了同样的回调模式。我错过了什么?
【问题讨论】:
-
那么,异步有什么问题呢?
标签: javascript asynchronous google-chrome-extension