Asynchronous chrome.management.getAll-存储值时出现问题(等待时间)
我发现一个问题,我知道是由于异步方法引起的。Asynchronous chrome.management.getAll-存储值时出现问题(等待时间),asynchronous,google-chrome-extension,google-chrome-devtools,Asynchronous,Google Chrome Extension,Google Chrome Devtools,我发现一个问题,我知道是由于异步方法引起的。 我需要将所有chrome扩展存储在一个数组中。 有问题的代码: 1 var ArrayExtensions = new Array ();<br> 2 chrome.management.getAll(function (info) {<br> 3 for (var i = 0; i < info.length; i++) {<br> 4 if (info[i].type== "extension"
我需要将所有chrome扩展存储在一个数组中。
有问题的代码:
1 var ArrayExtensions = new Array ();<br>
2 chrome.management.getAll(function (info) {<br>
3 for (var i = 0; i < info.length; i++) {<br>
4 if (info[i].type== "extension" ){<br>
5 ArrayExtensions.push(info[i].name);}} });<br>
6 for (var i = 0; i < ArrayExtensions.length; i++) {<br>
7 alert(ArrayExtensions[i]);<br>
8 }
1 var ArrayExtensions=new Array()
2.chrome.management.getAll(函数(信息){
3表示(变量i=0;i
4如果(信息[i]。类型==“扩展”){
5 ArrayExtensions.push(信息[i].name);}
对于(var i=0;i
7警报(阵列扩展[i]);
8 }
使用此代码,我不会得到任何警报窗口
但是当我添加alert(ArrayExtensions.length)时代码>在第5行和第6行以及第9行之间,我收到了一个编号为0的警报,我的扩展名(代码工作)和最后一个窗口显示了正确的扩展数量
显然,我需要等待一段时间才能将值存储在数组中,但如何才能更好地解决此问题?为什么不将第6-8行移到回调中?我认为可以随时启动侦听器chrome.tabs.onUpdated.addListener,所以我想等到chrome.management.getAll完成后,这会是更好的解决方案吗?如果(ArrayExtensions.length!=0){chrome.tabs.onUpdated.addListener}