Просто:
либо вызвать функцию после ответа передать ей значение:
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
callback(port);
});
function callback(value){
console.log(value); //accessed value outside that function
}
ИЛИ
создать глобальную переменную и присвоить réponse к нему
var portValue;
chrome.runtime.onConnect.addListener(function(port) {
console.assert(port.name == "knockknock");
port.postMessage({joke: "Knock knock"});
portValue = port;
});
Зависит от того, как вы хотите использовать значение, вы можете адаптировать любой из методов.
Вы пытаетесь передать порт переменную в другой метод вместо вызова его сразу? –