Teraz ułożyliśmy naszą prostą, starą kobiecą grę.
Jeśli użytkownik kliknie przycisk więcej niż pięć razy, to uważamy, że ma taki przycisk.
W przeciwnym razie przegrały.
Tak więc gra zdecydowanie działa tak jak teraz.
Ale zacząłem robić tę sprawę pod koniec ostatniej sekcji, że być może sposób, w jaki
napisaliśmy tę grę, nie był najlepszy na świecie.
Wyrzuciłem przypadek, w którym moglibyśmy chcieć pozwolić innemu programistce uruchomić tę grę.
No dobrze, możemy chcieć opublikować tę rzecz jako funkcję lub jako samodzielną paczkę.
Więc inny programista może uruchomić grę, a następnie będziemy musieli zezwolić im na określenie,
co należy zrobić, gdy użytkownik ukończy lub zakończy grę.
Myśląc o tym w ten sposób z punktu widzenia schematu, właśnie to sugeruję.
Mówię, że chcę mieć dokładnie takie same wrażenia z gry, ale chcę zawrzeć całą tę
logikę gry w jednej funkcji reprezentowanej przez tego rodzaju niebieskie lub cyjanowe tło.
Następnie chcę zezwolić innemu programistowi na rozpoczęcie gry i dokładnie określić, co powinno się stać, jeśli użytkownik
odniesie sukces w grze lub nie uda się jej w grze.
Innymi słowy, chcę refaktoryzować nasz obecny kod bazując na wszystkim, co reprezentuje tę grę, na
jedną funkcję, którą można nazwać, gdy inny programista może określić, co ma robić po
graniu.
Zróbmy ten refactor.
A potem, gdy jedziemy, zamierzamy przedstawić temat obietnic i dowiedzieć się, jak działają.
Więc wracam do mojego kodu i po prostu zaczynamy trochę od
refaktora, aby cała nasza gra stała się samodzielną funkcją.
Więc na samym szczycie pod znacznikiem skryptu zadeklaruję funkcję zwaną grą startową.
Zamierzam wstawić nawias klamrowy.
Przejmę całą moją logikę gry.
Zaraz opadnę i zamierzam zamknąć ten kędzierzawy nawias.
Tutaj na dole jest teraz cała moja gra zawinięta wewnątrz tego początku.
Funkcja gry.
Więc teraz udało mi się wprowadzić całą moją logikę gry w samodzielną funkcję, ale ta niezależna funkcja nadal zawiera
informacje o tym, co należy zrobić w przypadku niepowodzenia i sukcesu, aby upewnić się, że
wszystko działa poprawnie.
Zamierzam dodać wezwanie do rozpoczęcia gry pod deklaracją funkcji.
Więc tutaj nazywam grę początkową, tak jak.
A teraz z powrotem w chromie zamierzamy odświeżyć dokument i upewnić się, że wszystko nadal działa.
Więc tutaj wszyscy jesteśmy odświeżeni, będziemy czekać dwie sekundy i wszystko OK, bo gra nadal
działa tak, jak się spodziewałam.
Tak więc nasz kod w obecnej formie nadal działa, ale nie zapewniamy dobrego interfejsu dla żadnego
innego programisty, który chce zadzwonić do gry startowej.
Oto cały cel tutaj.
Chcę jakoś określić, co zrobić, gdy użytkownik wygrywa.
Ilekroć dzwonię do gry początkowej, aby to uczynić, przedstawimy teraz obietnice obiecane.
Wiele razy wyjaśniłem programistom i za każdym razem dokładnie wyjaśniłem, jak zachowują się
procesy.
Odkryłem dokładnie jedną rzecz, która mówi ci, jak działają, nie przekazuje wiedzy o
obietnicach.
Innymi słowy, mogę tu siedzieć i całymi dniami wykładać o tym, co robi obietnica, ale nie całkiem to tłumaczy.
Naprawdę musisz zobaczyć te rzeczy w akcji.
Oto, co zamierzamy zrobić.
Zamiast siedzieć tutaj i wylewać na obietnice bez przerwy, po prostu zamierzamy zmienić nasz kod, aby skorzystać z
obietnicy, a kiedy już raz to zrobimy, zrobimy kilka uwag na temat tego, jak
to dokładnie jest. Prace.
DOBRZE.
Więc najpierw zrobimy reaktor.
To będzie trochę tajemnicze, ale wtedy porozmawiamy o tym, jak to działa.
Aby zmienić nasz kod, aby użyć obietnic, zacznę od skasowania całej wewnętrznej deklaracji limitu czasu i jedynym powodem, dla którego
ją usuwam, jest to, że chcę napisać to od początku,
aby upewnić się, że jest to naprawdę jasne. dokładnie to, co się dzieje.
Tak więc w miejscach, które wyznaczają czas, zamierzam napisać zwrotną obietnicę i zauważyć, że używam tutaj dużego
P.
Mam zamiar spełnić tę obietnicę lub tę obietnicę, niezależnie od tego, czy jest to funkcja
grubej strzały.
DOBRZE.
Więc po prostu przekazałem tłuszcz lub taką funkcję.
Ilekroć deklaruję nową obietnicę, ta wewnętrzna funkcja, którą mu przekazuję, jest wywoływana z dwoma
argumentami, które rozwiązują i odrzucają.
Teraz w środku, jeśli zamierzasz umieścić dokładnie taką samą lub prawie taką samą logikę, jaką mieliśmy przed
upływem ustawionego czasu, powiem, że ustawiłem.
Koniec czasu.
Przekażę mu funkcję jako drugi argument.
Powiem 2000 milisekund.
Następnie, w ustalonym czasie możemy powiedzieć, że licznik jest większy niż 5, a tutaj
rzeczy stają się interesujące, zamiast mówić cokolwiek o alarmowaniu lub czymś podobnym, zamierzam przyjrzeć się temu argumentowi.
Ten zdecydowany argument mam zamiar nazwać jeszcze raz.
Wiem, że podrzucam tonę kodu, który wygląda tak tajemniczo, ale znoś się ze mną.
Zakończymy tutaj implementację, a następnie porozmawiamy o tym, co teraz dzieje się z instrukcjami
L, tak jak w przypadku awarii użytkownika.
Zamierzałem dodać na wezwanie, żeby odrzucić Teraz, ostatnia część.
Ostatni kawałek tutaj, na dole, gdzie ponownie nazywam grę początkową lub przesunięcie
średnika na końcu, a zamiast tego zamieniam ją na nową kropkę.
Potem przejdę do funkcji, w której będę ostrzegał, kiedy i jeszcze jedna ostatnia rzecz.
Jedna rzecz mniej ze mną.
Sam dół.
Potem dodam na haczyk i ostrzeżenie, że straciłeś.
OK, więc wiele zmian, które właśnie wprowadziliśmy wiele zmian i szans, jest dużo dziwnych.
Zupełnie dobrze.
Całkowicie tego, czego się spodziewam.
Najpierw uruchommy to w naszej przeglądarce i sprawdźmy, czy wszystko działa, i porozmawiamy o tym, co
się tutaj dzieje.
Tak więc upewnimy się, że najpierw zapisuję dokument, aby wszystko zostało zapisane.
Przechodzę z powrotem do Chrome lub odświeżam dokument lub kliknę przycisk.
Sądzę, że nie gotowałem i nie dość, bo widziałem cię ostatnio.
Zdobądźmy tutaj wygrywającą sprawę.
Kliknij, kliknij, a wygrasz.
Pamiętaj, że aby ponownie uruchomić grę, musisz odświeżyć odświeżanie przeglądarki.
Kliknij, kliknij, a ja wygrywam.
DOBRZE.
Tak więc wyraźnie coś działa poprawnie.
Najwyraźniej coś działa nadal, ale cóż to jest za obietnica.
Co to jest rozwiązane i odrzucić to, co to jest van i nie złapać na dole.
Zróbmy sobie krótką przerwę.
Będziemy wracać rozmawiać o tym, jak dokładnie działają obietnice, a potem wszystko skończy się odświeżeniem
obietnic.
Tylko jedna sekcja zostanie zapakowana w nasze odświeżenie.
DOBRZE.
Do zobaczenia w ciągu jednej sekundy.