Asynchronous 连续调用chrome.extension.sendMessage()

Asynchronous 连续调用chrome.extension.sendMessage(),asynchronous,google-chrome-extension,storage,Asynchronous,Google Chrome Extension,Storage,我正在写一个扩展,我想在background.js中存储我自己的cookiesmyookies,它存储域、路径、键和标志。在我的background.js中,当收到HTTP响应时,我为响应的每个Cookie头集调用chrome.extension.sendMessage()。因此,每个响应在几毫秒内多次调用此函数。响应后,仅存储最后一个或两个cookie,其余的cookie丢失 我做了下面的实验。我连接了一个按钮,该按钮具有功能update\u mycokies。单击按钮立即调用该函数,并在25

我正在写一个扩展,我想在
background.js
中存储我自己的cookies
myookies
,它存储域、路径、键和标志。在我的
background.js
中,当收到HTTP响应时,我为响应的每个Cookie头集调用
chrome.extension.sendMessage()。因此,每个响应在几毫秒内多次调用此函数。响应后,仅存储最后一个或两个cookie,其余的cookie丢失

我做了下面的实验。我连接了一个按钮,该按钮具有功能
update\u mycokies
。单击按钮立即调用该函数,并在2500毫秒后显示
myookies
的内容。如果我在2500毫秒后阅读存储,如果我在
update\u mycokies
中引入延迟(如下所示),那么所有四个cookie都在那里,但是如果我删除延迟,则只有最后一个或两个cookie被更新,其余的cookie丢失。
chrome.extension.sendMessage
正在使用'chrome.storage.local.set()。我想我的商店必须更新所有的饼干作为回应

function update_mycookies(){
    chrome.extension.sendMessage({"cdomain":".google.com", "path":"/", "key":"PREF"});
    setTimeout(function() {
        chrome.extension.sendMessage({"cdomain":".google.com", "path":"/", "key":"NID"});}, 1000);

    setTimeout(function(){
        chrome.extension.sendMessage({"cdomain":".google.it", "path":"/", "key":"PREF"}); }, 1500);

    setTimeout(function(){
        chrome.extension.sendMessage({"cdomain":".google.it", "path":"/", "key":"NID"}); }, 2000);
}
onMessage
listenr如下所示:

chrome.extension.onMessage.addListener(  
  function(request,sender,sendResponse) {
 if (request["cdomain"] && request["path"] && request["key"]) {
       chrome.storage.local.get("mycookies", function (items) {
         if (items["mycookies"]) {
          var found = false;
           var entries = items["mycookies"].split(";");
           entries.forEach (function (entry) {
            var dk = entry.split(",");
             if (dk[0] == request["cdomain"] && dk[1] == request["path"] && dk[2] == request["key"])
               found = true; 
           });
           if (!found)
             chrome.storage.local.set({"mycookies": items["mycookies"] + ";" + request["cdomain"] + "," + request["path"] + "," 
               + request["key"] });
         }
        else 
     chrome.storage.local.set({"mycookies": request["cdomain"] + "," + request["path"] + "," + request["key"] });
      }); 
   }
 }

你能不能也包括你的chrome.extension.onMessage事件监听器的代码@方 觉 onMessage listener addedchrome.storage.local.get是异步的。当您一次发送三条消息时,在调用第二条或第三条chrome.storage.local.get时,可能没有调用回调中的chrome.storage.local.set@方 觉 我对此表示怀疑。你能给我建议解决问题的方法吗?收到响应后,我想用收到的所有cookie更新我的商店。