可以說我有下面的代碼:Promise.All後,你可以繼續同步嗎?
var myData = [];
var future = Promise.All([getPromise1, getPromise2]).then((result)=>{
var myData = result []
}).catch((err)=>{
\\Do something with err
})
doSomething (myData);
我可以做一些myData的,已收到promise.all結果後的數據?或者我必須處理Promise中的後續代碼.then()。
例如:
future.then((data)=>{
doSomething(myData);
});
我覺得自己必須創建一堆。那麼()的,以保持處理任何類型的同步代碼。雖然我想既然是myData的結果,然後使用在結果的數據的任何代碼應該像承諾的一部分進行處理:
var future = Promise.All([getPromise1, getPromise2]).then((result)=>{
doSomething(result [])
}).catch((err)=>{
\\Do something with err
})
上午我剛認識這一切錯了嗎? 期待您的想法和意見!
P.S IM上的node.js
你可以把你的東西同步到一個函數,所以你需要調用*然後(yourFunction中)*只有一次。 – Robert
簡短回答是否定的,因爲異步代碼總是異步的 - 長答案是,你可以使你的代碼看起來像你想要的,使用async/await - 參見https://jsfiddle.net/4ghfdjcy/ - 或者更正確的https: //jsfiddle.net/4ghfdjcy/1/ –