我正在创建一个chrome扩展程序,令我惊讶的是我的内容脚本非常奇怪。我已经定义了一个全局变量关键字,但是当它通过赋予它值的函数时,该值在函数结束时到期。我花了几个小时进行故障排除,似乎无法找到问题。
var keyword;
chrome.extension.sendMessage({localStorage: "yo"}, function(response) {
var localStorage = response.localStorage;
keyword = localStorage["keyword"];
console.log(keyword);
});
console.log(keyword);
函数中的日志返回我想要的值,但函数返回undefined之后的日志,即使据我所知,它也应该返回函数中给出的值。我没有在函数中声明它,为什么它的值在函数后到期?
答案 0 :(得分:0)
"关键字"的值在你的例子中似乎分配了某种回调函数。因此,如果运行代码,则不会立即执行回调函数,因此不会为"关键字"分配任何值。它将在稍后执行,当您的chrome扩展程序触发回调函数时,您将传递给" sendMessage"。
但是你的console.log将立即执行,"关键字"就像它被初始化 - 未定义。