我尝试创建一个使用其他API的Chrome扩展程序。所以我的内容脚本获取DOM中的数据并向API询问结果(在background.js中)
因此,我从contentscript.js
向background.js
发送了一条消息,等待sendResponse
以来我的API响应。但是,我有一个问题,响应总是undefined
因为contentscript.js
收到回复,但我还没有发送回复。
contentscript.js:
chrome.runtime.sendMessage({type: "new", data: {/* ... */}}, function(response) {
console.log(response);
});
background.js:
chrome.runtime.onMessage.addListener(function(msg, _, sendResponse) {
if (msg.type == "new") {
execute(msg.data).then(function (response) {
sendResponse(response);
});
}
});
function execute(data){
return new Promise( function (resolve, reject){
/* ... */
$.ajax(options).done(function(data) {
return resolve(data);
});
});
}
解决方案是什么?
我需要在我的脚本和背景中添加onMessageListener,所以,我不使用sendResponse?
由于