Chrome运行时发送多条消息

时间:2016-04-22 13:05:27

标签: javascript google-chrome asynchronous google-chrome-extension

我的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” 而无需等待管理请求已完成?

1 个答案:

答案 0 :(得分:0)

使用setTimeout应解决此问题:

option 2