Kod asynchroniczny jest wykonywany natychmiast i w przeciwieństwie do kodu synchronicznego, nie czeka na zakończenie poprzedniego wiersza kodu. Jednak gdy mamy do czynienia z wieloma operacjami asynchronicznymi, korzystanie z zwrotów zwrotnych nie jest dobrym wyborem, ponieważ kod staje się mylący, niemożliwy do opanowania i trudny do zrozumienia lub debugowanie. Stąd rozwiązaniem jest stosowanie obietnic.
W tym poście przejdziemy do koncepcji obietnic w JavaScript wraz z przykładami.
Jakie są obietnice?
Obietnica to operacja lub zadanie, które zostanie wykonane w przyszłości. Składnia obietnicy podano poniżej:
Składnia obietnicy:
niech myPromise = new obiecJak widać z powyższej składni obietnicy, konstruktor obietnicy przyjmuje jedynie funkcję wywołania zwrotnego jako argument. W funkcji wywołania zwrotnego mamy argumenty rozwiązania i odrzucania, w których rozdzielczość jest wywoływana, gdy operacje wykonywane w funkcji wywołania zwrotnej są skuteczne. Jeśli jednak operacja się nie powiodła, to zadzwoń odrzuć.
Mówiąc po prostu, przypuśćmy, że nadchodzą twoje urodziny, a twoja matka obiecuje, że daje ci nowy laptop. Nie otrzymałeś laptopa i nie możesz być naprawdę pewien, czy dostaniesz laptop, czy nie do urodzin. Twoja matka może kupić ci laptopa lub ona może zmienić zdanie i kupić coś innego. To jest obietnica w języku laika.
Każda obietnica ma trzy stany lub możliwości:
Zalety obietnic
Przed przejściem na przykłady obietnicy przejrzyjmy kolejną koncepcję w obietnicy obietnic konsumenci którego funkcją jest konsumowanie obietnic poprzez rejestrację funkcji za pomocą:
Przykład:
W tym przykładzie sprawdzimy, czy dwie liczby są równe, czy nie używają obietnic, a na podstawie tego, czy ta operacja zakończy się powodzeniem, czy nie, wyświetlimy dane wyjściowe.
// Obiecaj inicjalizacjęOdkąd operacja się powiodła, widzimy Operacja Udana W dzienniku konsoli.
Zmieńmy teraz liczby zainicjowane w funkcji zwrotu wywołania, aby sprawdzić, czy funkcja połowów wykrywa błąd, czy nie.
// Obiecaj inicjalizacjęPonieważ liczby nie są teraz równe, funkcja reject () zostanie wywołana, a błąd zostanie buforowany przez funkcję połowów:
Wniosek
Obietnica to operacja zakończona w przyszłości i pomaga programistom wdrożyć kod asynchroniczny. Preferowane są obietnice niż funkcje zwrotne, ponieważ obietnice są znacznie bardziej czystsze, a zatem poprawia czytelność i debugowanie kodu, ma lepsze obsługę błędów, a także wiele operacji asynchronicznych jest lepiej obsługiwane z obietnicami. Obietnica może zostać spełniona, odrzucona lub jest w toku.
W tym poście przeszliśmy przez obietnice w JavaScript i wyjaśniliśmy obietnice za pomocą przykładu.