Avem acum jocul nostru simplu, de vârstă mică, de sex feminin.
Dacă un utilizator face clic pe buton de mai mult de cinci ori, atunci considerăm că are unul.
Altfel, au pierdut.
Deci, jocul funcționează cu siguranță ca acum.
Dar am inceput sa fac acest caz la sfarsitul ultimei sectiuni care poate ca modul in care am scris
acest joc nu a fost cel mai bun din lume.
Am aruncat cazul în care am putea dori să lăsăm un alt dezvoltator să ruleze acest joc.
Chiar bine, am putea dori să publicăm acest lucru ca o funcție sau ca un pachet independent.
Deci, un alt dezvoltator ar putea rula jocul și apoi ar trebui să le permită să precizeze ce
trebuie să facă atunci când utilizatorul a terminat sau nu a reușit jocul.
Deci gândindu-mă la acest lucru în natură dintr-un punct de vedere al diagramei, asta este ceea ce sugerez.
Spun că vreau să am exact aceeași experiență de joc, dar vreau să închei logica jocului
într-o singură funcție care este reprezentată de acest tip de fundal albastru sau cyan.
Apoi, vreau să permit unui alt dezvoltator să vină să înceapă jocul și să specifice exact ce ar trebui să
se întâmple dacă utilizatorul reușește în joc sau nu reușește în joc.
Deci, cu alte cuvinte, vreau să refactor codul nostru curent baza tot ceea ce reprezintă acest joc într-o singură funcție
care poate fi numit în cazul în care un alt dezvoltator poate specifica ce să facă după ce jocul
este jucat.
Deci, să facem acest refactor.
Apoi, pe măsură ce mergem, vom introduce subiectul promisiunilor și vom afla cum funcționează.
Așa că am revenit la codul meu și doar pentru a începe vom face un
pic de refactor pentru a pune primul nostru joc într-o singură funcție.
Deci, chiar în partea de sus a etichetei de script, voi declara o funcție numită jocul de start.
Voi plasa o bretonă de deschidere.
O să-mi iau toată logica jocului meu.
Mă voi îndrepta la un moment dat și voi închide acea brățară curată.
Aici, în partea de jos, acum tot jocul meu este înfășurat în interiorul acestui început.
Funcția jocului.
Deci, acum am reușit să pun toată logica jocului meu într-o funcție independentă, dar funcția autonomă încă încapsulează ce trebuie
să facă în cazul succesului și al eșecului, doar pentru a vă asigura că totul funcționează
în mod corespunzător.
Voi adăuga un apel pentru a începe jocul sub declarația funcției.
Deci, aici jos voi chema startul jocului așa.
Și acum, în interiorul cromului, vom reîmprospăta documentul și vom fi siguri că totul funcționează.
Deci, aici suntem toți reîmprospătați se va aștepta cele două secunde și OK totul pentru jocul funcționează
în continuare așa cum m-aș aștepta.
Deci, codul nostru, așa cum se află acum, știți din nou, încă funcționează, dar nu oferim o interfață plăcută oricărui
alt dezvoltator care dorește să cheme jocul de start.
Acesta este scopul aici.
Vreau să precizez cum să procedați atunci când utilizatorul câștigă.
Ori de câte ori numesc jocul de pornire pentru a face acest lucru, vom introduce ideea promisiunilor acum promise.
I-am explicat dezvoltatorilor de multe ori și de fiecare dată când am explicat exact cum se
comportă procesele.
Am descoperit exact un lucru care îți spune că funcționează, nu transmite cunoștințe despre
promisiuni.
Cu alte cuvinte, pot să stau aici și să le țin toată ziua despre ceea ce face o promisiune, dar nu se traduce destul de bine.
Chiar trebuie să vezi aceste lucruri în acțiune.
Deci, iată ce vom face.
Mai degrabă decât să mă așez aici și să scot afară despre promisiunile de la zero, ne vom reface codul pentru a face uz
de o promisiune și apoi o dată ce o vom face odată ce o vom găsi, vom face
niște observații despre exact cum lucrări.
O.K.
Așa că vom face mai întâi reactorul.
Va fi un pic misterios, dar vom vorbi exact despre cum funcționează.
Deci, pentru a refactor codul nostru de a utiliza promisiunile am de gând să încep prin a șterge întreaga declarație set de timp interior și singurul
motiv pentru care îl șterg este pentru că vreau să scriu acest lucru de
la zero pentru a vă asigura că este foarte clar pentru a exact ce se întâmplă.
Deci, în locurile care au stabilit timpul, voi scrie o nouă promisiune și voi remarca că folosesc o capitală
P aici.
Atunci voi trece această funcție de promisiune sau de promisiune, indiferent care ar fi aici o funcție de săgeată
de grăsime.
O.K.
Așa că am trecut doar o grăsime sau o funcție ca asta.
Ori de câte ori declar o promisiune nouă, această funcție interioară pe care o trec la ea este chemată
cu două argumente rezolvate și respinse.
Acum, înăuntru, dacă vrei să plasezi exact aceeași sau aproape aceeași logică pe care am avut-o înainte
cu timpul stabilit, o să spun set.
Pauză.
O să-i dau o funcție ca un al doilea argument.
Voi spune 2000 de milisecunde.
Apoi, în interiorul intervalului de timp stabilit, putem spune dacă contorul este mai mare de 5 și aici este locul în
care lucrurile devin interesante în loc să spună ceva despre alertare sau ceva de genul ăsta mă voi uita la acest
argument.
Acest argument de rezolvare îl voi suna din nou.
Știu că voi arunca o grămadă de cod care să caute tot ceea ce misterios, dar să aibă cu mine.
Vom termina implementarea aici și apoi vom vorbi exact despre ceea ce se întâmplă acum pe declarațiile L, așa
cum este cazul în care un utilizator nu reușește.
Vroiam să adaug un apel pentru a respinge acum un ultim pic.
Un ultim pic mic aici, în partea de jos, unde numesc jocul de start din nou sau mișcă punct
și virgulă la sfârșit și în schimb îl voi înlocui cu un nou punct de linie.
Atunci voi trece apoi o funcție în interiorul căreia vă voi alerta când și apoi un ultim lucru.
Un lucru mai puțin acolo cu mine.
Cel mai adânc.
După asta, voi adăuga o captură și o alertă pe care ați pierdut-o.
OK, o mulțime de schimbări pe care tocmai le-am făcut multe schimbări, iar șansele sunt foarte multe pare ciudat.
Foarte bine.
Tot ceea ce mă aștept.
Să începem mai întâi acest lucru în interiorul browserului nostru și să verificăm că totul funcționează și vom vorbi exact despre
ce se întâmplă aici.
Deci, vom fi siguri că mai întâi salvez documentul, astfel încât totul este salvat.
Reveniți la Chrome sau reîmprospătați documentul sau dați clic pe buton.
Ei bine, cred ca nu m-am pregatit pentru ca v-am vazut ultima data.
Să facem un caz câștigător aici.
Faceți clic pe faceți clic pe faceți clic pe și câștigați.
Rețineți că pentru a reporni jocul de care aveți nevoie pentru a reîmprospăta actualizarea browserului.
Faceți clic pe faceți clic pe clic și câștig.
O.K.
În mod clar, ceva lucrează bine aici.
În mod clar ceva lucrează în continuare, dar ce naiba este acest lucru promis.
Ce se rezolvă și respinge ceea ce este această vagon și nu se prinde în partea de jos.
Să facem o pauză rapidă.
Ne vom întoarce să vorbim despre exact cum funcționează promisiunile și apoi vom fi terminat cu reîmprospătarea
promisiunilor.
Doar încă o secțiune va fi înfășurată cu reîmprospătarea noastră.
O.K.
Ne vedem într-o secundă.