javascript czekaj

| | | |

Wprowadzone w ES6, Promises umożliwia łatwe pisanie kodu asynchronicznego bez konieczności obsługi wielu funkcji wywołań zwrotnych. Dzięki obietnicom nie musisz martwić się o wielopoziomowe wywołania zwrotne, które są trudne do napisania i utrzymania.

Jest jeszcze jedna funkcja JavaScript, która jeszcze bardziej ułatwia pisanie kodu asynchronicznego przy użyciu obietnic: funkcje asynchroniczne / brać udział w. Te — umożliwiają pisanie kodu, który wykonuje synchroniczny wygląd, ale tworzy procedury asynchroniczne.

W tym przewodniku omówimy, czym jest funkcja asynchroniczna / wait i jak można jej użyć w kodzie. Zacznijmy

Obietnice: Odświeżenie

Zanim zaczniemy mówić o funkcjach asynchronicznych / wait, musimy podsumować obietnice. Obietnica reprezentuje operację asynchroniczną. Wskazuje kod, że operacja zostanie wykonana, a jeśli operacja się powiedzie, zostanie zwrócona wartość. W przeciwnym razie błąd zostanie zwrócony do reszty programu.

Promesa reprezentuje wartość, która nie była znana w momencie tworzenia obietnicy. Obietnica to tylko to: obietnica, że przyszłe wartości zostaną zwrócone do twojego kodu. Ponieważ obietnica jest przedmiotem, musi być pisana wielkimi literami.

Rozważ ten scenariusz. Musisz pobrać zasób z interfejsu API. Przetworzenie Twojej prośby zajmie sekundę lub dwie. Zamiast kazać użytkownikowi czekać na przetworzenie żądania, możesz przenieść swój kod do Promise, aby reszta programu mogła nadal działać.

Oznacza to, że możesz kontynuować renderowanie części swojego interfejs użytkownika witryny podczas pobierania danych. Gdy tylko wartość zostanie zwrócona, Promise wyśle do twojego głównego programu.

Oto przykład obietnicy:.

Nasza opinia o kodzie: Twoje pliki cookie zostały wysłane! wykonaj metodę sendCookies.then (), nasza obietnica zostanie zwolniona. Nasz program czeka 1000 milisekund, a następnie zwraca wartość „Twoje pliki cookie zostały wysłane!” " Nasz główny program

Jak używać funkcji Async i Wait

W funkcji i async /wait instrukcja wait wykonania kodu blokuje się w ramach swojej funkcji asynchronicznej do momentu, gdy zostanie zwrócona obietnica. często twierdzą, że asynchroniczne / asynchroniczne funkcje oczekują, ale obserwują wykonywanie zadań asynchronicznych.

Rozważmy następujący przykład:.

Nasza opinia o kodzie: Twoje pliki cookie zostały wysłane! Nasza funkcja sendCookies() potrzebuje 1000 milisekund, aby zwrócić wartość „Twoje pliki cookie zostały wysłane”. W tym przypadku zadeklarowaliśmy funkcję asynchroniczną, aby nasz kod czekał na rozwiązanie lub odrzucenie obietnicy.

Funkcja „async” Słowo kluczowe mówi naszemu kodowi, że chcemy wykonać asynchroniczne działanie w naszej funkcji. Słowo "oczekiwanie" - klucz wskazuje, że nasz kod czeka na zwrócenie obietnicy sendCookies() przed kontynuowaniem wykonywania naszego programu.

Funkcje asynchroniczne zawsze zwracają obietnicę.

Korzystanie z funkcji Async i With Oczekiwanie na wiele przejść

Funkcje asynchroniczne / czekanie są najczęściej używane, gdy istnieje wiele obietnic, z którymi trzeba pracować. Nazywa się to czasami wiązaniem obietnic. Rzeczywiście, twój kod będzie czekał na obietnicę powrotu do każdego kroku, zanim przejdzie do następnego:

Nasz kod zwraca:

Każdy krok zajmuje 1000 pełnych milisekund!. Nasza funkcja sendCookies () nie jest wykonywana do czasu obietnicy powrotu z naszej funkcji ProcessOrder ().

Wyrażenia asynchroniczne

Istnieją trzy sposoby użycia funkcji asynchronicznej / czekania.

Pierwszym jest podejście, które pokazaliśmy w naszych ostatnich przykładach: deklarując funkcje. W naszych przykładach zadeklarowaliśmy funkcje, które zwracają obietnicę, więc użyliśmy słów "async" i "oczekiwanie" - klucz do wykonania tych funkcji

Można również zadeklarować funkcję asynchroniczną za pomocą funkcji kierunku:

Ten kod zwraca: Twoje pliki cookie zostały wysłane! Jest to to samo, co w naszym pierwszym przykładzie, ale zamiast deklarowania funkcji main() użyliśmy funkcji strzałki

Podobnie jak ty może użyć składni wyrażenia funkcji:.

Ten kod zwrotny: Twoje pliki cookie zostały wysłane Jak widać, wyjście jest ponownie l lub samo. Jedyna różnica polega na tym, jak zadeklarowaliśmy naszą funkcję.

W rzeczywistości ta składnia jest bardzo podobna do naszego ostatniego przykładu. Po prostu używamy słowa - klawisz "function ()" zamiast funkcji boom.

Nie ma lepszego sposobu na zadeklarowanie funkcji asynchronicznej / wait. Wszystko zależy od programu, który piszesz i preferowanej składni. Chociaż można argumentować, że funkcje kierujące są najbardziej zwięzłą metodą, inne sposoby deklarowania funkcji asynchronicznej / oczekiwania mogą być lepsze w innych przypadkach.

Przetwarzanie żądań internetowych przy użyciu Async / Wait

Jednym z najczęstszych zastosowań async / jest funkcja await do przetwarzania żądań internetowych za pomocą opartego na obietnicy API , Fetch As(). Możesz przeczytać więcej o tym, jak używać fetch() w naszym przewodniku JavaScript dla początkujących do wyszukiwania

Weźmy ten przykład:

Nasz kod zwraca:

Kiedy uruchamiamy naszą funkcję retrieveComments (), używamy słowa "czekaj" - klawisza funkcji czekania" wykonanie naszego pobrania () oświadczenie. Oznacza to, że reszta naszego harmonogramu nie będzie kontynuowana, dopóki nasze żądanie sieciowe nie zostanie przetworzone. W rzeczywistości funkcja zwraca obietnicę.

Gdy obietnica jest zwracana przez funkcję fetch() fetch (), konwertujemy zwróconą wartość do formatu JSON, następnie identyfikujemy obiekt, aby pobrać listę nazw wszystkich komentarzy i wyświetlić ją w konsoli

Jak poradzić sobie z błędem

Och, jak bym chciał, żeby błędy nie występowały w kodzie. Ale tak, a tam deweloperzy musimy coś zaplanować. Funkcja asynchroniczna, obsługa błędów odbywa się za pomocą synchronicznego try ... catch. Rozważ ten kod:.

Nasz kod zwraca:

W naszym przykładzie użyliśmy .catch(), jeśli zwróciliśmy. W tym przypadku używamy require ("Błąd"), aby poinformować nasz kod, że wystąpił błąd.

Jeśli ta instrukcja zostanie wykonana, nasza deklaracja .catch() zostanie uruchomiona i zostanie wydrukowany błąd.

Podobnie, funkcje asynchroniczne mogą wykrywać błędy składniowe:.

Nasz kod zwraca: NetworkError podczas próby pobrania zasobu. W tym przykładzie użyliśmy instrukcji try/catch, aby sprawdzić, czy nasza metoda wait zwróciła obietnicę sukcesu. Ponownie nasz interfejs API jest nieprawidłowy, przez co nasz program odrzuca naszą obietnicę. Kiedy tak się dzieje, "catch" jest wykonywany w naszym bloku try/catch, który rejestruje nasz błąd w konsoli.

Wniosek

Funkcje asynchroniczne / wait pomagają pisać operacje asynchroniczne w kodzie. Kiedy zadeklarowana jest funkcja asynchroniczna, możesz użyć słowa „oczekiwanie” - klawisza, aby poczekać na wynik operacji. Słowo kluczowe wait musi być używane z funkcją, która zwraca obietnicę.

Jesteś teraz gotowy do używaj asynchronicznych funkcji JavaScript / czekaj jak ekspert!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method