我遇到了一个我知道是因为异步方法的问题。
我需要将我所有的 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 }
使用此代码,我没有收到任何警报窗口。
但是,当我 alert(ArrayExtensions.length);
在第 5 行和第 6 行之间添加时,在第 9 行中,我收到了一个编号为 0 的警报,我的扩展名(代码工作)和最后一个窗口显示了正确的扩展数。
显然我需要等待一段时间才能将值存储在数组中,但是我怎样才能以更好的方式解决这个问题呢?