Obietnice i wywołania zwrotne w JavaScript
Obietnice i wywołania zwrotne to ważne pojęcia w JavaScript, używane do zarządzania kodem asynchronicznym. Przyjrzyjmy się przykładowemu programowi, który pokazuje, w jaki sposób obietnice i wywołania zwrotne mogą być używane w JavaScript.
``` javascript
// Ta funkcja zwraca obietnicę, która zostaje rozpatrzona po określonym opóźnieniu
opóźnienie funkcji (ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
// Ta funkcja przyjmuje funkcję wywołania zwrotnego i wywołuje ją po określonym opóźnieniu
funkcja opóźnione wywołanie zwrotne (ms, wywołanie zwrotne) {
setTimeout(wywołanie zwrotne, ms);
}
// Korzystanie z obietnic
console.log("Korzystanie z obietnic:");
console.log("Uruchom");
opóźnienie(2000).potem(() => {
console.log("Opóźnienie 1 — rozwiązane");
});
opóźnienie(3000).potem(() => {
console.log("Opóźnienie 2 — rozwiązane");
});
console.log("Koniec");
// Korzystanie z wywołań zwrotnych
console.log("Korzystanie z wywołań zwrotnych:");
console.log("Uruchom");
opóźnione wywołanie zwrotne(2000, () => {
console.log("Opóźnione oddzwonienie 1");
});
opóźnione wywołanie zwrotne(3000, () => {
console.log("Opóźnione oddzwonienie 2");
});
console.log("Koniec");
```
W tym przykładowym programie definiujemy dwie funkcje: `delay` i `delayedCallback`.
Funkcja `delay` zwraca obietnicę, która zostaje rozwiązana po określonym opóźnieniu. Pobiera parametr `ms`, który określa opóźnienie w milisekundach. Gdy obietnica zostanie rozwiązana, wywołuje funkcję „resolve”, która po prostu rozwiązuje obietnicę.
Funkcja `delayedCallback` przyjmuje dwa parametry: `ms`, który określa opóźnienie w milisekundach, oraz `callback`, który jest funkcją wywoływaną po określonym opóźnieniu. Ta funkcja po prostu wywołuje funkcję `setTimeout` z określonym opóźnieniem i funkcją wywołania zwrotnego.
Następnie używamy tych funkcji, aby zademonstrować, jak obietnice i wywołania zwrotne mogą być używane do zarządzania kodem asynchronicznym. W pierwszej sekcji używamy obietnic, aby opóźnić wykonanie dwóch instrukcji console.log. Używamy funkcji `delay`, aby utworzyć dwie obietnice z opóźnieniami odpowiednio 2 i 3 sekund, a następnie używamy metody `then`, aby zarejestrować komunikat, gdy każda obietnica zostanie rozwiązana.
W drugiej sekcji używamy wywołań zwrotnych, aby opóźnić wykonanie dwóch instrukcji console.log. Używamy funkcji `delayedCallback` do utworzenia dwóch wywołań zwrotnych z opóźnieniami odpowiednio 2 i 3 sekund, a następnie przekazujemy każdą funkcję wywołania zwrotnego do funkcji `setTimeout`.
Kiedy uruchamiamy ten program, widzimy, że zarówno obietnice, jak i wywołania zwrotne są w stanie opóźnić wykonanie instrukcji console.log, ale robią to na różne sposoby. Obietnice używają metody `then` do wykonania kodu, gdy obietnica zostanie rozwiązana, podczas gdy wywołania zwrotne przekazują funkcję do funkcji `setTimeout`, która ma zostać wykonana po określonym opóźnieniu.
Wykorzystanie obietnic i wywołań zwrotnych w JavaScript
Obietnice i wywołania zwrotne to ważne pojęcia w JavaScript, które są używane do zarządzania kodem asynchronicznym. Rzućmy okiem na użycie obietnic i wywołań zwrotnych w JavaScript:
1. Obietnice
Obietnice służą do zarządzania kodem asynchronicznym w JavaScript. Są to obiekty reprezentujące wartość, która może nie być jeszcze dostępna, ale zostanie rozwiązana w przyszłości. Obietnice służą do zarządzania kodem, który musi czekać na wynik operacji asynchronicznej, takiej jak wywołanie interfejsu API lub pobranie danych z bazy danych. Obietnice służą do obsługi wyniku operacji po jej zakończeniu, pomyślnie lub z błędem.
2. Oddzwanianie
Wywołania zwrotne to funkcje przekazywane jako argumenty do innych funkcji i wykonywane po wystąpieniu określonego zdarzenia. Służą do zarządzania kodem asynchronicznym w JavaScript i do wykonywania kodu po zakończeniu określonej operacji. Wywołania zwrotne są często używane z detektorami zdarzeń do wykonywania kodu, gdy na stronie internetowej wystąpi zdarzenie, takie jak kliknięcie lub przewinięcie. Są one również używane z funkcjami asynchronicznymi do obsługi wyniku operacji po jej zakończeniu.
Niektóre typowe zastosowania obietnic i wywołań zwrotnych w JavaScript obejmują:
1. Wykonywanie wywołań API: Obietnice i wywołania zwrotne są powszechnie używane do wykonywania wywołań API w JavaScript. Podczas wykonywania wywołania interfejsu API można użyć obietnicy, aby poczekać na odpowiedź z serwera i obsłużyć wynik operacji po jej zakończeniu. Funkcji wywołania zwrotnego można użyć do obsługi odpowiedzi po jej odebraniu z serwera.
2. Obsługa danych wprowadzanych przez użytkownika: Wywołania zwrotne są często używane do obsługi danych wprowadzanych przez użytkownika w JavaScript. Na przykład, gdy użytkownik kliknie przycisk na stronie internetowej, funkcja wywołania zwrotnego może zostać użyta do wykonania kodu w odpowiedzi na akcję użytkownika.
3. Pobieranie danych: Obietnice i wywołania zwrotne mogą służyć do pobierania danych z serwera lub bazy danych. Podczas pobierania danych można użyć obietnicy, aby czekać na pobranie danych, podczas gdy funkcja wywołania zwrotnego może służyć do obsługi wyniku operacji po jej zakończeniu.
4. Animacje i przejścia: wywołania zwrotne są często używane do obsługi animacji i przejść na stronie internetowej. Na przykład funkcji wywołania zwrotnego można użyć do wykonania kodu po zakończeniu animacji lub przejścia.