2017-02-20 54 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之前不運行它。 (如果沒有幫助,我不太瞭解這個問題)