我已经四处寻找,但都是关于人们提示这个错误的。许多帖子说您应该检查所有扩展。
但是,这是我在开发扩展程序时遇到的。
这是如何发生的:
我在 background.js
上有一个听众:
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
console.log('get:', request);
if (request.hasOwnProperty('opt')) {
trackPage('opt/' + request.opt);
}
return Promise.resolve("");
});
这是我的选项页面中的触发器:
track('something');
function track(msg){
chrome.runtime.sendMessage({opt: msg}, function(response) {
console.log(response);
});
}
错误发生在
track
函数被触发。我怎样才能完全修复错误?
最佳答案
您不能返回 Promise
使函数async
, 你必须返回 true
.所以改变这个:
return Promise.resolve("");
对此:Promise.resolve("").then(result => sendResponse(result));
return true;
关于javascript - 是什么导致了 "Unchecked runtime.lastError: The message port closed before a response was received."警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55224629/