robie kilka obliczeń wewnątrz podwójnej forEach
Loop coś takiego:(JavaScript) Synchronizacja forEach Loop z callbacków wewnątrz
array.forEach(function(element){
Object.keys(element).forEach(function(key){
/* some complex computations with asynchronous callbacks */
});
});
someFunctionHere();
czy istnieje sposób dla pętli najpierw zakończyć przed wykonaniem funkcji someFunctionHere()
? lub w inny sposób, że program będzie wiedział, czy pętla zostanie zakończona, zanim przejdzie dalej someFunctionHere()
...
Może brakuje mi niektórych forów, ale te, które znalazłem, nie pomogły mi w tym, co chcę osiągnąć, a przy okazji robię to w NodeJS, także pytam, czy istnieją istniejące biblioteki, które mogą to zrobić.
Zapomniałem dodać to, czy powinno to być kolejne pytanie?
Czy istnieje sposób na synchronizację iteracji, która spowoduje przejście do następnej iteracji po zakończeniu bieżącej iteracji? (Przepraszam za to)
dzięki za pomoc ...
Tak, to w zasadzie 100% gwarancją, że „someFunctionHere” zostanie wezwany przed asynchroniczne operacje są zakończone. – Pointy
Odnośnie edycji: odpowiedź Golo pokazuje, w jaki sposób możesz użyć async.js do robienia tego, co chcesz. (Wierzę, że ['Clumpy.js'] (http://www.tumuski.com/code/clumpy/overview/) może być również użyty do tego.) Moja odpowiedź pokazuje, w jaki sposób można" rozwinąć własne "rozwiązanie, jeśli z jakiegoś powodu nie możesz (lub po prostu nie chcesz) korzystać z bibliotek innych firm. –
Zrobiłem powyższy problem używając async.forEach(), ale zawiodło to moją bazę danych, ponieważ iteracje nie są nazywane jedną iteracją na raz (lub jeśli iteracje są wykonywane synchronicznie, może mam logiczny błąd w kodzie), więc Golo's odpowiedź może zrobić to samo, co zrobiłem w asyn.forEach(), mam na myśli od terminu "async" czy iteracje nie są wykonywane synchronicznie? – megamoth