javascript - Unable to retrieve message from background in popup of chrome extensions -


this question has answer here:

i trying communicate between popup.js file , background.js file chrome extension. when retrieving information using chrome storage, execution of callback no longer received client (popup.js)

within background.js file.

function gettotals(callback){   chrome.storage.sync.get(lmscats, function(data){     callback({"results": data}); // not work   }); }  chrome.runtime.onmessage.addlistener(   function(request, sender, sendresponse) {     // sendresponse({"message": "hi"}); //works     gettotals(sendresponse);   } } 

within popup.js referenced popup.html file

chrome.runtime.sendmessage({action: "total"}, function(data){     console.log(data); }); 

i not sure if i'm missing documentation appreciated. came across chrome extension onmessage wasn't sure if related or how around this.

i didn't read properly

chrome.runtime.onmessage.addlistener(   function(request, sender, sendresponse) {     // sendresponse({"message": "hi"}); //works     gettotals(sendresponse);     return true;   } } 

solved problem:

according documentation

this function becomes invalid when event listener returns, unless return true event listener indicate wish send response asynchronously (this keep message channel open other end until sendresponse called).

hope helps else in future.


Comments