我的Chrome扩展程序中的“onMessage”存在问题。 所以我有插件,有2个按钮,当我按下 buton1 时我在background.js中发送了一条消息,我在那里调用函数“displayManagementTab()” ,在这个函数中,我正在加载表中 chrome.storage.local 的所有数据,我有大约100个包含大量数据的产品,并加载它来自chrome.storage.local它需要大约7秒以上。 当它正在加载并且我尝试在插件中单击 buton2 以打开“设置”面板时,它将不执行任何操作,直到加载本地存储的所有数据,并且从chrome.storage.loca加载完成后buton2将发送“消息”并运行函数“displaySettingsTab()”。
这是我将addListener添加到onMessage时的代码:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log("got message: " + request.command);
if (request.command == "ok") {
displayManagementTab();
}
if (request.command == "management") {
displayManagementTab();
}
if (request.command == "settings") {
displaySettingsTab();
}
if (request.command == "loadtab") {
runAmazonInNewTab(request.url);
}
});
如何 request.command ==“settings” 而无需等待管理请求已完成?
答案 0 :(得分:0)
使用setTimeout应解决此问题:
option 2