如何从 chrome API 函数为外部变量赋值?
How do I assign value to outside variable from chrome API function?
当我从 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);
});
当我从 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);
});