如何从 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);
});