回調我做了雙forEach
循環像這裏面的一些計算:(JavaScript)的同步foreach循環裏面
array.forEach(function(element){
Object.keys(element).forEach(function(key){
/* some complex computations with asynchronous callbacks */
});
});
someFunctionHere();
是有辦法的循環做做someFunctionHere()
功能之前首先完成?或任何方式,程序就會知道,如果環路繼續someFunctionHere()
前完成......
我可能會丟失一些論壇,但我發現那些沒有幫助我什麼,我想實現,並通過我的方式我在NodeJS中這樣做,我也問是否有現成的庫可以做到這一點。
我忘了添加它或應該是另一個問題?
有沒有辦法同步做迭代,它只會在當前迭代完成後才進行下一次迭代? (對不起,這一點)
感謝您的幫助......
是的,它基本上是100%保證「someFunctionHere」將在異步操作完成之前調用。 – Pointy 2013-03-01 16:15:27
關於編輯:Golo的答案顯示瞭如何使用async.js來做你想做的事情。 (我相信''Clumpy.js'](http://www.tumuski.com/code/clumpy/overview/)也可以用於這個。)我的答案顯示瞭如何「推出自己的」解決方案if ,出於某種原因,你不能(或者根本不想)使用第三方庫。 – 2013-03-01 21:18:24
我已經使用async.forEach()完成了上述問題,但是由於迭代一次不會被稱爲一次迭代(或者如果迭代同步完成,我可能在代碼中出現邏輯錯誤),所以會混淆我的數據庫,所以Golo的答案可能與我在asyn.forEach()中所做的相同,我的意思是來自術語'異步'的迭代不是同步完成的嗎? – megamoth 2013-03-02 00:24:30