我开始构建一个 Chrome 扩展程序,看起来大多数函数都是异步的,它们使用回调函数,即使是那些期望同步行为的函数,比如chrome.tabs.getCurrent
.
因此,假设我想要一个 browserAction 的弹出窗口,并且当用户单击一个按钮以将某个对象作为消息传输到 background.js 时。出于本示例的目的,该对象应包含当前的选项卡 URL 和 cookie 值。两者都chrome.tabs.getCurrent(cb)
需要chrome.cookies.get(details, cb)
回调。如何在不执行以下操作的情况下收集要传递的数据:
chrome.tabs.getCurrent(
function(currentTab){
var url = currentTab.url;
chrome.cookies.get({...},
function(cookie){
var msg = { "url" : url, "value" : cookie.value };
chrome.runtime.connect().postMessage(msg);
});
}
);