2017-02-20 39 views
1
var a = ""; 
    Promise.all(aList).then(function(final) { 

     for (let i in final) { 
      var newbeet= final[i]; 
      a = newbeet; 
      console.log(`a: ${a}`); 
     } 
}); 

控制台将显示:“a的值”,但实际上,a被分配给“”而不是“a的值”。如何正确解决这个问题(可能是由异步造成的?)?我尝试使用上面的Promise.all,但仍然无法解决它。控制台打印出该值,但该值不能分配给变量?

在Promise.all中,用于从zip中提取文件,我为它创建了一个额外的承诺和Promise.all(< - 上面显示的那个),以便额外的人可以帮助我从zip文件中提取html文件中的信息。我不知道这是否是提取html信息的有效方法。

回答

0

a只有在Promise.all的回调运行时才会被赋值。如果您有一些依赖于它的代码,则需要在分配a之前不运行它。 (如果没有帮助,我不太了解这个问题)