Javascript Chrome事件侦听器SendResponse即使返回true也不发送

Javascript Chrome事件侦听器SendResponse即使返回true也不发送,javascript,google-chrome-extension,Javascript,Google Chrome Extension,遇到与相同的问题。但是,当我实施解决方案时,它并不能解决我的问题。我得到了完全相同的错误,并且在返回响应之前调用了一个异步方法。这里出了什么问题 background.js chrome.runtime.onMessage.addListener( async function (request, sender, sendResponse) { if (request.action === "getAllTabs") { // if I uncom

遇到与相同的问题。但是,当我实施解决方案时,它并不能解决我的问题。我得到了完全相同的错误,并且在返回响应之前调用了一个异步方法。这里出了什么问题

background.js

chrome.runtime.onMessage.addListener(
    async function (request, sender, sendResponse) {
        if (request.action === "getAllTabs") {
            // if I uncomment this line, content.js receives this response
            // sendResponse({data: "hey"})
            chrome.tabs.query({}, function(tabs){
                // but not this one??
                sendResponse({data: tabs});
            })
            console.log('returning true');
            return true;
my content.js:

    chrome.runtime.sendMessage({action: "getAllTabs"}, function(response) {
      console.log(response);
    });

您的函数不会返回
true
,而是返回一个
Promise
,请参阅链接主题。这是否回答了您的问题?是的。我对异步函数缺乏理解,实际上我甚至没有意识到函数是异步的。谢谢