Javascript Chrome事件侦听器SendResponse即使返回true也不发送
遇到与相同的问题。但是,当我实施解决方案时,它并不能解决我的问题。我得到了完全相同的错误,并且在返回响应之前调用了一个异步方法。这里出了什么问题 background.jsJavascript 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
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
,请参阅链接主题。这是否回答了您的问题?是的。我对异步函数缺乏理解,实际上我甚至没有意识到函数是异步的。谢谢