当我从chrome api外部分配变量的值时遇到问题,如下例所示。
码:
var btnStatus;
chrome.runtime.sendMessage({jsBlocker: "check"}, function(response) {
btnStatus = response.data;
});
alert(btnStatus );
输出:
最佳答案
sendMessage
是异步的,这意味着它仅在准备就绪时才执行传递的回调,因此btnStatus = response.data;
语句会花费一些时间。同样,由于它是异步的,因此下面的代码将不等待sendMessage
并将继续运行,结果alert
将为您显示btnStatus
的初始值,即undefined
。使用响应数据的所有代码都依赖于此回调。
您可以在回调中放入alert
来测试即将到来的数据,然后对它进行所需的处理:
chrome.runtime.sendMessage({jsBlocker: "check"}, function(response) {
btnStatus = response.data;
alert(btnStatus);
});
关于javascript - 如何从Chrome API函数为外部变量赋值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28737329/