Press "Enter" to skip to content

Generators in JavaScript


buon lunedì mattina mmm lampade in ultimo
video della settimana che possiamo trovare lì o
nella descrizione dell’episodio abbiamo guardato
iteratori in questo video stiamo andando a
guarda i generatori che è un super
concetto strano e straniero e magico
fino a quando non ti rendi conto che è solo la stessa cosa
zucchero sintattico per creare facilmente
iteratori Sono il tuo host mpj e tu sei
guardando sulla funzione
[Musica]
[Musica]
l’episodio di oggi è sponsorizzato da mance
e stanno attualmente assumendo se tu
conosci qualcuno a cui piacerebbe lavorare con
reagire nativo e nodejs nel cuore di
Stoccolma li mandi alla calma tip-top / f
FF che collega anche nell’episodio
descrizione diamo un’occhiata al
esempio di iteratore dell’esercito drago personalizzato da
il video della scorsa settimana se stai pensando
su come saltare il video della scorsa settimana
iteratori e cercando di capire
generatori senza comprensione
iteratori che non è possibile sono necessari
capire gli iteratori per
capire che i generatori guardano quel video
Detto questo forse hai fatto la scorsa settimana, quindi lascia
ti faccio un breve riepilogo di come questo
il codice funziona così stiamo facendo il make
Dragon qui che è una funzione che
crea una stringa di drago casuale così semplicemente
produce qualcosa come questo tempo medio
drago o occhi medi drago o grande tempo
drago o drago di medio periodo o minuscolo
il drago di fuoco che avrai dopo abbiamo questo
oggetto dell’esercito del drago che possiamo iterare
con un ciclo for, ad esempio, così noi
trascinalo sopra l’ esercito del drago e
ci dà un drago per ogni iterazione
e lo vedi qui sul primo
iterazione è un piccolo drago di fuoco whoops
alla prima iterazione c’è un piccolo fuoco
drago sul secondo mezzo di iterazione
gli occhi minuscoli del drago del drago a tempo medio
drago ciascuno sì lo capisci e lo dà
noi una quantità casuale di draghi su ognuno di essi
corri come vedi qui mentre lo eseguo multiplo
i tempi ci vedono come oh mio dio
cambia ogni volta che funziona
quell’esercito di draghi ha una proprietà speciale
questa è l’interfaccia per un iterabile
oggetto che è impostato su una fabbrica
funzione che a sua volta restituirà un
oggetto con una proprietà chiamata successiva
è una funzione che ci dà il prossimo
iterazione della cosa che valutiamo
dell’esercito è l’oggetto di iterazione
qualcosa di simile è un oggetto
quello ha
un valore che ora è il drago iterato
e poi ha anche ritorni a
proprietà che dice se l’iterazione è
fatto o no ci sono più cose da fare
iterare dovremmo concludere questo è ciò che il
alba proprietà significa così ogni volta che
chiama dopo quale è il ciclo for
internamente controlliamo se abbastanza
I draghi sono stati generati che è un
solo una cosa casuale e se non lo sono
restituiamo un’iterazione in cui facciamo un
drago e impostare quello per il valore se noi
se i draghi non sono stati generati, noi semplicemente
restituisce un oggetto di iterazione che ha
fatto impostato a due e che dice il per a
loop qui per essere come quello che abbiamo finito
il modo in cui pensi che questo sia in linea
cosa di valutazione che sto andando qui è
cool allora il nome di quel plug-in è
chiamato quokka puoi trovarlo su
Crockett Fonfon funziona calmo
è uno sponsor dello show quello che sono
lo farò, lo sostituirò
fabbrica iteratore qui come questa con a
generatore farà esattamente il
stessa cosa userò il
generatore per creare la fabbrica iteratore
invece per il confronto ho intenzione di solo
commenta questo, lo ruberò
per scrivere la funzione stella, allora ho intenzione di
fare qualcosa che è molto tipico di
i generatori ho intenzione di scrivere mentre
vero allora ho intenzione di afferrare questo è questo
diventando molto lento perché si blocca
in un ciclo infinito , ci sto
commenta questo per un po ‘e si
abbastanza durante uno spawn se abbastanza drago
generato che stiamo andando a tornare, perché
abbiamo finito, non ci sono più
draghi ma se non abbiamo finito se abbastanza
i draghi non sono stati generati , stiamo andando
a oh mio dio nuova parola chiave sai cosa
cosa vuol dire ciò che cosa è che
lo faremo con quello che sto per fare
rendere un drago tracciare Punk e ora
abbiamo finito così
e ci spostiamo qui OOP, quindi vedi
come wow ora funziona è lo stesso
cosa come questa questa piccola cosa
sostituito questo è molto più breve lasciatemi
in realtà chiudere questo e sta andando a
dimostrare a voi che questo è solo il
stessa cosa se se chiamiamo un drago
esercito questo simbolo ha fatto bene la nostra chiamata
quello che ci dà un iteratore
proprio come fece questa cosa
me lo rubo e basta cancellare
questo in modo che non siamo distratti e
Chiamerò solo questa cosa
draghi non mi dispiace
in questo modo l’ inizio ti getta
fuori in qualche modo per qualche motivo così chiamata
alcuni draghi che ci danno un iteratore
va bene tasso costante o firmiamo
che la tua variabile e ricorda dal
ultimo episodio cosa facciamo con gli iteratori
se lavoriamo a consumarli come per
fuori fa questo internamente per noi ma se
vogliamo farlo come da soli
fai il prossimo iteratore e cosa fa
che ci danno occhi che ci danno oggi un
oggetto di iterazione che ha un valore e
qualcosa che ci dice se abbiamo finito o
non così chiamiamolo un paio di
orari e vedere che cosa ci dà va bene così
vediamo qui che otteniamo tre draghi
drago fulmine medio un piccolo fulmine
drago drago grande fuoco e non lo siamo
fatto non abbiamo finito qui non siamo su
qui ma poi abbiamo finito siamo fuori
draghi e non importa quanti
volte abbiamo chiamato iteratore dopo quello
stiamo ancora fatto ancora non stiamo ottenendo
più così con questo in mente torniamo indietro
al generatore D e guarda cosa
siamo come fa così
continua a fare loop qui continua ad andare avanti
all’infinito finché non termina qui
questa è intelligenza quindi quello che succede è
che stiamo girando qui, ok mentre è vero
vero è sempre vero quindi continua a essere
il ciclo verifica se vi sono abbastanza draghi
stato generato e se abbastanza Draghi hanno
è stato filato , quindi ritorna così
terminare completamente la cosa e quello
questo è quello che succede qui, ma se noi
non abbiamo abbastanza draghi continuiamo e
poi colpiamo la parola chiave yield e quella
produrrà un drago e che sta per
tipo di mettere in pausa la funzione e basta premere
il tuo drago su e poi fino al
il mondo esterno chiama dopo sull’iteratore
non farà nulla se non quando
fa il prossimo continua
correre qui e poi risale fino a
mentre e sì continua e controlla se è così
abbastanza draghi nati e sì
fa questo e fino a quando non lo fa
più e fendron
e torno ti scoperò questo è
in realtà ancora molto confuso hai
ho provato molto e lo stai facendo
si sente facile, ma è in realtà non è
Ho confuso
facciamo un po ‘togliere il cablaggio e
sì, abbiamo molti condizionali e
cose strane qualcosa come un loop I
Credo che renderlo ancora più facile o più semplice
come si facciamo solo le cose
consegnate manualmente dei lanuginosi al drago
lì e poi rendiamo segno il
bel drago che vedi qui mentre cedo
questi valori noi e come chiamiamo dopo
li stiamo facendo uscire qui come
oggetti di iterazione e quindi abbiamo finito
e si può anche spazio ma anche cercare di
ricordalo in questo contesto in cui
JavaScript c’è sempre a
ritorno implicito indefinito a
alla fine di una funzione quindi se non lo fai
ritorna manualmente in una funzione JavaScript
ritornerà indefinito perché a
la funzione tornerà sempre così potrebbe
continua a cedere alcuni valori qui o noi
può fare tutto ciò che vogliamo, quindi cosa piace
Hardy il cane non è un drago
non ci importa di benvenuto di tutti questo è
debolmente dattilografati che non ci sono forti
classi qui e se torniamo anche se noi
ritorno anticipato che significa che il
il generatore è terminato e qualcuno come noi
non raggiungerà mai nessun altro rendimento
dichiarazione quindi vediamo come se non fosse così
casuale è sopra il primo 0,5 quindi cediamo
difficilmente il cane non è dispiaciuto, allora lo sappiamo
poi torniamo così ora a volte no
prendi a malapena il cane e questo è perché
abbiamo fatto questo ritorno presto qui e notiamo
anche se abbiamo più codice qui
chiamando iteratore più volte
non sta andando a darci tutto ciò che il
il generatore è l’iteratore
la sua terminazione è fatta ed è
restituito è fatto ma prima che sia fatto
è quando ci si arrende in questo modo
della funzione è il generatore è a
funzione generatore è tipo di pausa
ed è quello che è qualcosa che io
trovare una sorta di utile mentale mentale
modello quando si tratta di pensare ai generatori
di loro come possibili funzioni e a
Illustri che sto per rimuovere o il
iterator successive dichiarazioni ora grazie a
quokka abbiamo effettivamente questo codice a portata di mano
indicatori di copertura qui a sinistra quindi
rosso significa rosso grigio significa che questo codice
non è stato eseguito che è carino
interessante dato che stiamo chiamando
alcuni draghi qui, quindi fammi vedere come
mm-hmm
che il fatto che ne abbiamo preso un po ‘
i draghi non significa che sia così
eseguito e questo perché tutte le chiamate
una funzione generatore non in realtà
perché funziona ancora ci dà un
iteratore che ci permette di andare al
il prossimo passo nel generatore è una specie di
come un telecomando per una TV come la TV
ti consente di accendere il televisore e di accenderlo
i canali l’iteratore è il tuo telecomando
controllo per far funzionare il generatore così
chiamiamo il prossimo sull’iteratore e vediamo
che succede
hmm è un punto o punto dopo cosa fa
questo ci dà che ci dà un
iterazione con valore fluffykins il
Draghi e non abbiamo ancora finito e noi
guarda qui che questa prima riga è ora
eseguito ma non il resto, non il resto
ha forzato qui e restituito questo
valore del drago di puffkins – quello è il
restituisce valore – iteratore ma successivamente in modo che
prendiamo zucche – draghi ma dopo
non succede niente, si ferma o semplicemente
non fa nulla che sia il generatore
aspettando che usiamo il nostro telecomando
il nostro iteratore per deprimere il prossimo e il fino
allora il generatore è continuato quindi andiamo
facciamo in quel punto il punto iteratore successivo
vediamo cosa ci dà in questo modo
ci dà il nostro segno il drago fine e
non abbiamo ancora finito così vedi qui
che questo valore qui è finito qui
come oggetto di iterazione e di nuovo vedi
qui che mmm non arriviamo mai a questi due
linee continuiamo a chiamare e vedere
che succede
Oh, la copertura del codice è cacca marrone
è confuso perché è così
molte cose stanno accadendo su una linea
questo è molto più facile se lo separiamo
su due linee invece che possiamo
vedere correttamente il
ristorante quindi vediamo qui che su questo
corri non siamo tornati e questo significava
che continuiamo quaggiù e cediamo
difficilmente il cane e questo ci ha dato un
iterazione in cui il valore era difficilmente il
cane questo è interessante anche se lo siamo
non abbiamo finito anche se siamo chiaramente
alla fine della cosa e ricorda
che la parola chiave yield interrompe il
funzione e attende il prossimo
chiamata dell’iteratore prima che continui
quindi questo è effettivamente messo in pausa poco prima
questa cosa accade l’implicito e
il posto in cui torna non definito
succede sai che succede in ogni
funzione in JavaScript
così quando chiamiamo iteratore punto dopo questo
sta andando essere sia ciò che accade come il
saremo fatti veri perché usiamo
ritorno e otterremo un valore
sul file perché è quello che noi
ritorno possiamo effettivamente fare questo un po ‘
un po ‘più bello se ci piacesse, potremmo farlo
ritorna a malapena il cane e che poi questo
la cosa non sarà mai raggiunta che vedi qui
come oh scusa, conosci la cosa a caso
è tutto ciò che ora è il caso in cui
erano a malapena il cane è generalmente
vedi qui che va bene, ora ci arriviamo a malapena
cane e abbiamo anche fatto un vero così questo
la prossima iterazione non accadrà mai così se
chiami il ritorno con un valore che lo farà
finiscono per essere una cosa da cui esci
chiamando prossimo quando si chiama dal
al di fuori ho notato qui che se solo io
chiama esegui questo un paio di volte che vedi
ecco che va bene questa volta
non ha fatto a malapena il cane perché questo
questa cosa qui si è trasformata in un ritorno falso così
solo vero scusa ritorno vero e proprio
ci ha fatto tornare presto come vedi qui se
lo stiamo facendo esplicitamente come
questo è in realtà quello che è successo quando tu
basta digitare return in JavaScript questo è
qual è l’effetto, quindi è un succo
di come funzionano i generatori ma io voglio davvero
per tornare alle mie precedenti affermazioni
sono proprio come uno zucchero sintassi che
ci aiuta a creare facilmente degli iteratori
per assicurarmi che ti fidi di me per quello
e vai a riscrivere alcuni draghi come a
la normale funzione andrà esattamente
la stessa cosa ma lo faremo
lasciatemi solo con gli iteratori di ritorno
commenta cosa fare una funzione
mmm sound dragon Ho bisogno di un mutabile
la variabile lo chiama gara shuns sta andando
iniziare a meno 1, quindi creeremo
l’iteratore mmm a destra mm-hmm
e ricorda un iteratore bene si tu
possiamo vedere qui che un iteratore è
qualcosa che possiamo chiamare in seguito
mm-hmm
e il prossimo dovrebbe darci il prossimo
oggetto nella cosa qualsiasi cosa e il
prossimo oggetto sarà il primo
oggetto che è lanuginoso un drago
ma mmm bene, facciamo veramente questo
ritorna lovekins il drago ma ricorda
che un iteratore non vuole il giusto
il valore perché ha bisogno di sapere se
abbiamo finito o no il mondo esterno
ha bisogno di sapere che così, oltre alla
valore ha bisogno di sapere cosa abbiamo fatto
e siamo pronti ah questo per ora siamo
effettivamente fatto perché ce n’è uno solo
un drivin finora nel nostro iteratore giusto
ci stiamo arrivando per segnare e difficilmente
forse il cane, ma non è così
non posso leggere probabilmente dopo una multa
questo perché non stiamo restituendo il nostro
iteratore quindi questo alcuni draghi così
ricorda questo solo tornando sul trovare
quindi dobbiamo effettivamente restituire il
iteratore va bene così il nostro tipo di iteratore
una sorta di opere ci dà il valore di tutto il
tempo
non continuiamo qui noi
bisogno di ora abbiamo bisogno di vogliamo accanto
la seconda volta si chiama abbiamo voluto
per tornare segnare il drago fine così noi
è necessario iniziare a incrementare questo
cosa lo stato qui che tiene sotto controllo
quante chiamate abbiamo fatto al diretor
iterazioni più bus e se noi se se
iterazioni si questo è zero allora noi
restituisci lanugine ma se le iterazioni
programma di copia / incolla se è così
torneremo a segnare il fuoco
Drago segnare la linea sottile mi dispiace per
quella
e come non abbiamo finito e ora siamo
come stiamo continuando la nostra cosa del drago
qui va tutto bene così questo sembra buono
finora lasciaci andare a questa cosa se
matematica il che siamo di ritorno andando presto
se la razione è uguale a due e anche se
questa cosa è roba quindi andremo a
partito di ritorno non danno importanza al partito
punto e poi poi siamo in realtà possiamo
effettivamente fatto non masticare e se
altrimenti in realtà torniamo solo
fatto non c’è altro da fare qui e
questo è ed è questo mi permette di ridurre il
dimensioni qui perché questo è un bel po ‘
di codice hai bisogno di vedere tutto
oh questo è un piccolo dispiacere per te cellulare
le persone che devi strizzare gli occhi, ma ora tu
vedere qui che
iteratore successivo ci dà i colli iteratori
un po ‘di drago e se ne gestiamo una coppia
di volte a volte prendiamo a malapena il cane
così come puoi vedere qui niente di magico
su un iteratore, quindi possiamo sempre farlo
cosa fa un generatore usando un normale
funzione che restituisce un iteratore ma come
vedi qui i generatori sono ancora grandi
perché in questo modo è questo è molto stringato
e secondo me molto leggibile, così ultimo
settimana abbiamo guardato iteratori oggi noi
abbiamo guardato i generatori ma lo siamo
ancora solo grattando la superficie di tutti
questo ad esempio gli iteratori possono essere
consumato da altre cose oltre il per
loop o manualmente come abbiamo fatto qui
gli iteratori possono essere sincroni e
i generatori possono anche essere sincroni
al giorno d’oggi e quindi del ciclo ha un per
un cameriere in modo che possa essere un
anche sincrono c’è così tanto
cose interessanti che possiamo imparare su questo
se sei interessato, per favore pubblica un
commenta in basso su cosa vorresti
piacerebbe sentire di tanto in tanto oggi
episodio è stato sponsorizzato da tip top se tu
conosci qualcuno a cui piacerebbe lavorare
reagire nativo e nodejs nel cuore di
stoccali spedirli a un commando tip-top
slash app e app che anche le donne possono
sii descrizione dell’episodio e sei tu
stai solo guardando un episodio di divertimento divertente
funzione li rilascio ogni lunedì
mattina Oh 800 GMT se sei smemorato
è possibile iscriversi qui o guardare un altro
episodio subito cliccando qui
Sono mvj fino al prossimo lunedì mattina grazie
tu
Please follow and like us: