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}