I'm currently working on a Chrome Extension.
content_script.js
$(document).ready(function(){
var IPToken;
function doSomething() {
chrome.runtime.sendMessage({method: "getToken"}, function(response) {
return response.token;
});
}
IPToken = doSomething();
console.log(IPToken);
background.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.method == "getToken")
sendResponse({token: localStorage["IPToken"]});// IPToken is just a string
});
IPToken
is always undefined. As I understand it, this is because the function won't wait for a response? If so, how can I make sure the response has returned before setting IPToken = doSomething()
?
EDIT: I need the value of response.token
further down in another function. This is why I'm trying to store the value in the var IPToken
.
UPDATE:
function onComplete(a){ // When the code completes, do this
console.log(a);// this works, it returns the true result!!
return a;
}
function getToken(whenDone){
setTimeout(function(){
chrome.runtime.sendMessage({method: "getToken"}, function(response) {
whenDone(response.token);
});
},10);
}
var IPToken = getToken(onComplete);
console.log("Token is: "+IPToken);// undefined