I try to create an chrome extension who works with an another API. So my content script get the data in DOM and ask the API the result (in background.js)
So, I send a message from contentscript.js
to background.js
and I wait the response of my API since sendResponse
. But, I have a problem the response is always undefined
because contentscript.js
receive the response except I don't yet send the response.
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);
});
});
}
What's the solution ?
I need to add onMessageListener in my contentscript and background, so, I don't use sendResponse ?
Thanks