Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 19.01.2012 Ostrzeżenie: (0%)
|
Witam czy jest cos takiego jak kolejnosc wykonywania funkcji? Np. mam dwie funkcje, wywojuje je jedna pod druga czyli:
funkcja1(); funkcja2(); funkcja1() wypelnia mi tabele 25-tys wierszy wiec kilka sekund to trwa, zas w funkcja2() potrzebuje liczbe wierzszy ale zeby to obliczyc to musi funkcja1() sie wykonac do konca. Problem w tym ze funkcja2() nie czeka az funkcja1() doleci do konca. Czy jest na to jakas opcja (IMG:style_emoticons/default/questionmark.gif) Czyli jakies sekwencyjne wykonywanie funkcji (IMG:style_emoticons/default/questionmark.gif) Poprostu chce aby kolejna sie wykonywala po calkowitym zakonczeniu poprzedniej! Z gory dziekuje za odpowiedz Pozdrawiam (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%)
|
W funkcja1(); masz pętlę ? Jeśli tak to za pętlą uruchom funkcja2();
Wydaje mi się, że o to Ci chodzi |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%)
|
setTimeout może pomóc
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%)
|
wykonaj funkcje2 kiedy f1 zwroci true?
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%)
|
Nie da się tego zrobić w satysfakcjonujący sposób bez założenia z góry jakiegoś limitu czasowego na wykonanie funkcji1 dopóki php nie będzie obsługiwało wielowątkowości. W javie napisałbyś dwie asynchroniczne metody, w pierwszej przed wykonaniem właściwej operacji poinformowałbyś pozostałe funkcje (wait() ) i zablokował zasób, na końcu zwolnił i notify(), w php jest to niestety niewykonalne. Jedynym rozwiązaniem, które przychodzi mi teraz do głowy to użycie po stronie klienta (ajax) wywołań asynchronicznych do skryptów w php.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%)
|
Używaj callbacków. Być może będziesz musiał zmodyfikować funkcję1.
Kod funkcja1(function(){ funkcja2(); }); Tak to możesz wykonać w kolejności, ale funkcja1 musi przyjmować za parametr inną funkcję która zostanie wykonana po zakończonej pracy. |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 18:07 |