Czy jest możliwe wywołanie funkcji w javascript i nie czekanie na wyniki? Mam wiele wywołań rekurencyjnych i zużywają dużo pamięci, więc czasami dostaję komunikat „Przekroczono maksymalny rozmiar stosu wywołań”.
Odpowiedzi:
2 dla odpowiedzi № 1Możesz użyć
setTimeout( function(){ ..... }, 0 )
0 dla odpowiedzi nr 2
Nie jest to możliwe i nie jest związane z oczekiwaniem na powrót funkcji. Problem polega na tym, że wywołujesz funkcję w obrębie funkcji.
Po wywołaniu funkcji funkcja wywołującastan jest wypychany na stos. Jeśli wywoła to inną funkcję, stan zostanie wypchnięty na stos. Stos musi rosnąć. Musisz spojrzeć na swój projekt i czy rekurencja jest odpowiednia dla twojego problemu.
Jeśli nie potrzebujesz wyniku funkcji lub musisz poczekać na jej powrót, czy potrzebujesz rekurencji.