Press "Enter" to skip to content

Generators in JavaScript – What, Why and How – FunFunFunction #34


andare a Lunedi mattina Sono MPJ e si
stai guardando divertente fun funzione un po ‘di a
stile di vita girato per te per un bel po ‘
la gente mi ha chiesto di fare un video
generatori di generatori è una nuova funzionalità
in ACMA script 6 oh sì dopo o sì
armonia o sì come JavaScript 2015 o
qualunque sia una nuova caratteristica, quali sono
i generatori si riferiscono a molte persone
generatori come funzioni possibili che
è una spiegazione che mi piace ma io
pensa che i generatori alla fine siano uno
di quelle cose che devi solo
vedi per capirli quindi facciamolo
entra dentro quando stai facendo uso di
generatori che usi spesso
promette anche tu non devi ma
ancora se non capisci le promesse
e capire promessa pure questo
il video ti farà sciogliere il cervello
quindi devi farlo prima io ho un
video sulle promesse laggiù che tu
possiamo controllare così per questo esempio siamo
lavorerò con un codice sincrono
stiamo andando a prendere qualcosa da un
il servizio di imballaggio è in realtà questo
ottimo servizio per fare solo questi random
riposa le cose del test freddo ed è un JSON
segnaposto doctype codice calmo e quando
ti arricciassi ottieni questo test casuale
dati è molto utile per
quindi ho questo file di prova console.log ah
ciao e io lo gestisco e lo dico
generalmente interessato sì ciao vado
per mostrarti un esempio con promesse
prima e per farlo useremo
l’ API di recupero per farlo perché
questa è una promessa basata quindi, lo farò
Allora prendi e uh sì, lo faremo
consultare il registro che vedrò cosa
accade
prendere non è il divertimento sì
perché nel browser web sei moderno
i browser Web avranno un fetch costruito
ma stiamo facendo funzionare il nodo, quindi non lo facciamo
ho quello così ho intenzione di richiederlo
nel nodo va a prendere non richiede recupero I
think e pm install node fetch e noi
eseguilo ancora una volta, otteniamo un grande JSON
blob si ok , otteniamo un oggetto del corpo
oggetto di risposta o qualcosa del genere
al fine di ottenere un corpo JSON da andare a prendere
il corpo da questo come Jason stiamo andando
fare risposta alla risposta
JD canzone ciao eseguirlo di nuovo molto bello ora
abbiamo un oggetto JSON qui con un titolo
penso che lo registreremo
i compositi quindi adottano un post un nuovo post
punto titolo e stiamo per andare
nessun generatore di possibilità e otteniamo solo il
il titolo qui chiarisce che lo farò
titolo sia il titolo da fare lì ed eseguire
di nuovo e ora dice il titolo qui così
si tratta di un sincrono
Silouan presto usando le promesse e
è una cosa molto standard, siamo solo
passando il tuo, sento che lo sta riprendendo
e una volta recuperato, lo passerà
a questa scuola qui sta arrivando
la risposta e la risposta ha a
metodo chiamato JSON che analizzerà il file
corpo come Jason e poi una volta finito
che lo trasmetterà al
prossimo richiamo sul prossimo poi e
stiamo estraendo il titolo da lì
e quel titolo viene registrato dalla console
fuori alla console e questo è quello che
stiamo vedendo qui niente di strano
ma noi ne faremo alcuni
i generatori nel mix ora richiedono in a
biblioteca dei generatori chiamata Co now Co will
prendere come argomento un generatore
Funzione e che sembra che ha
questa piccola stella qui e questo significa
si tratta di una funzione di generatore di andare a
commento che esce questa promessa
esempio qui e inizia a copiare le cose
da qui ho intenzione di copiare questa riga qui
BAM sarà un po ‘lungo così
stiamo per rompere questo in un if
il tuo I oke Oke e ora quello che sto per
fare è che ho intenzione di fare questa risposta
uguale URI di recupero quindi questo sarà uh se io
solo se è stato appena eseguito direttamente
fuori questo sarebbe restituito a
prometto ma se lo faccio ah e facciamolo
Questo
risposta console.log e ho intenzione di
eseguire e mostrare a voi cosa guardare così
questo viene restituito questo non è un
prometti che questa è la risposta effettiva
oggetto permettimi di dimostrarlo ulteriormente
Vado a Const post
Khan segna velocemente Const Jesus cede ah
punto di risposta JSON eseguirlo nuovamente
cosa oh sì è ancora una risposta
perché sto facendo eco alla risposta che voglio
per echeggiare post come voglio io potrei questo
corri di nuovo e vediamo che Wow questo no
fa eco al post, quindi lo farò
renderlo uguale alla coda Bob I’m
andando a solo titolo fare post non fare
Io – e vogliamo echeggiare il titolo solo per
fallo esattamente lo stesso che farò
Questo
siamo onorati che lo gestiamo di nuovo e come te
vediamo che ora abbiamo lo stesso comportamento che è
riecheggiando il titolo da lì il
post nell’esempio oh così cosa sono
che vi mostra qui a questo punto è
fondamentalmente solo la magia oscura è qualcosa di nuovo
sintassi stella come la sua nuova sintassi resa e
è una nuova biblioteca di carbone quindi andiamo a piedi
questo codice attraverso in un ordine calmo
modo non c’è niente di strano nel nostro
linea 12 ma ecco il nostro primo mistero
parola chiave che riconosciamo questo recupero il tuo occhio
qui dall’ultimo esempio qui sopra
ma rendi questo è strano cosa fa
questo fa ciò che la funzione del generatore
qui farà quando raggiunge il rendimento
la parola chiave è che prenderà il
ritorno promesso da recuperare ed è
andrò hey non so di cosa si tratta
cosa sto andando a fare solo questo a
tu il co-ceo e lascia che ti occupi di esso
perché non lo so e non lo farò
fare
qualsiasi altra cosa non terrò
eseguendo finché non mi dai qualcosa
con cui posso lavorare e la co-funzione
andrà come se tu fossi un
Generatore di funzione sei pigro barbone lo farò
Affrontare questa promessa per te ed è
andando a prendere la promessa che sta per succedere
risolvilo e poi passerà
quello che qualunque sia il valore del risultato
di nuovo nella funzione generatore e
questo è ciò che sta per essere svenuto
qui ciò che sta per essere assegnato alla
risposta e questo sarà
ripetuto qui sulla riga successiva così
reattivo JSON che sta andando anche a
restituire una promessa che l’ uomo generatore
bene non appena raggiunge un rendimento qui
andrà quello che è un altro
prometto che non so cosa fare con
che ho intenzione di cederlo a voi CEO così
che puoi occupartene e al CEO
risolve una promessa e poi essa
passa di nuovo nel generatore che
lo assegnerò qui e il resto del
codice qui questo non è niente di strano e
questo non è niente di strano, va bene così
lo fa sentire un po ‘meno magico
ma stiamo solo guardando come generatori
lavoro dall’interno del generatore noi
non so come l’amministratore delegato fa questo così siamo
intenzione di implementare la nostra versione di
CEO, lo commenterò e lo sono
andando a sostituire questo con quello che siamo
lo chiamerò in cui lo chiameremo
remissione
Di recente mi è stata data questa USB di marca
power bank e pensavo che Adam sembrasse
come se non fosse prodotto completamente
paese di lingua inglese quindi ho pensato
che farei una lettura drammatica per
trovi gente dal retro di esso
Ampia uscita USB compatibile Powerbank
risparmio energetico funky Kong e
Vuitton cordialità mentale ed economica
l’efficienza ha una capacità della batteria a LED
indicatore di moda e bella senza perdita
in standby usa quel tempo più a lungo più alto
efficienza di conversione la potenza nominale
la conversione di potenza arriva fino a 90
per cento sopra il molto superiore a
prodotti simili hanno intellettuali
funzione di dormienza quando l’ attrezzatura
usato regolerà automaticamente la corrente
l’output riproduce davvero una spina e gioca per
smart iPhone HTC famiglia nera che via I
scommetto che lo commenterò e lo sono
andando a sostituire questo con quello che siamo
chiamerò la magia
beh no non proprio perché non è così
particolare magia che le persone chiamano
corri e chiamiamoli sì, corri, andiamo
andiamo con quello che stiamo dichiarando
funzione run sappiamo che run lo prende
giusto questo è ci vuole un generatore e
stiamo andando a sì siamo questo è
facendo funzionare il generatore quindi siamo giusti
andando sai funzionare il generatore
generatore di generatori e vedremo
quello che ci dà sai um
console.log eseguilo ah gee grazie nodo
debugger che è stato super utile tutto a posto
ah questo non è molto da spiegare
Sono io capita di sapere che questo ci dà
un iteratore e iteratore sta per
avere un metodo successivo , consoliamoci di questo
fuori invece un risultato vedi cosa ti dà
noi va bene questo è molto di più
esplicativo ci dà un oggetto qui noi
e l’oggetto ha un valore di protocollo
che è una promessa che deve essere
aspettato che il generatore abbia di nuovo
come se non sapessi come comportarmi
promette che ti occuperai di questo
quindi ci ha dato la promessa qui
ed ha anche una proprietà che è
fatto uguale è falso ne parleremo
un po ‘più tardi per ora il lacy
generatore ci ha chiesto di occuparsene
promessa ed è quello che faremo
prendiamo la promessa andando avanti
chiamare questo oggetto è il raishin I
pensa questo questo oggetto questo è ciò che noi
stavano chiamando un’iterazione e il
l’iterazione ha una promessa come valore in
in questo caso la durata del valore chiama questo a
prometto a te e stiamo andando o
risolvi questo come tu risolvi le promesse
allora giusto così la promessa si risolverà
ad un valore andando a chiamarlo X e noi
vuoi fornire il generatore di pizzo con
questo valore in qualche modo e lo facciamo da
passando nel iteratore nuovo così
chiameremo iteratore punto dopo e
passeremo nel valore ottenuto
noi niente davvero penso che sia acuto
questo ma fanculo per ora
non stiamo andando così lontano
Penso che dovremmo fare un diario della console
qui per vedere cosa sta succedendo risposta
è la risposta e corriamo questo diritto BAM così
riconosciamo che questa è la risposta
oggetto così ha funzionato così lontano
lentamente camminare attraverso quello che sta succedendo così
molto lontano stiamo passando questo generatore
qui in esecuzione correre sarà qui sulla linea 21
generatore di chiamata che gli darà un
iteratore finora nulla in Jen the
il generatore non è ancora stato eseguito
tuttavia qui sulla riga 22 si richiama il punto
prossimo sull’iteratore che sarà effettivamente
iniziare l’ esecuzione di of
generatore in modo sta andando ad eseguire la linea
12 e poi inizierà
eseguendo la riga 13 qui e sta andando
chiama fetch e fetch sta per tornare
promessa che il generatore sta per
produrne uno si fermerà
Sto solo per dire che ti ha gestito
devo fare i conti con questa promessa
perché io non so come trattare con essa
e questo è ciò che stiamo per scendere
qui perché il prossimo valore ritornerà
un’iterazione e quell’iterazione lo farà
avere un valore e questo è il nostro
promessa perché questo è ciò che il
generatore il generatore ha ceduto poi noi
utilizzare quindi per risolvere la promessa
proprio come tu risolvi qualsiasi promessa e
quando lo facciamo noi passiamo per l’iteratore
usando il passaggio successivo un valore qui e quello
cederà quindi aderire e assegnare a
risposta che è per quanto abbiamo ragione
ora quello che succede dopo è che il
generatore poiché ora abbiamo ceduto il
risposta bene
due nuovi in ​​esecuzione e si disconnetteranno
risposta qui e questo è ciò che vediamo
qui e poi sarà
continua qui chiamando questa risposta a
JSON e arriverà fino a questo
la corsa e che sarà ceduta
qui così qui ne otterremo un altro
prometto che lo chiamerò un altro
prometti per ora solo per dimostrare questo
a te vado a console.log un altro
prometti un’altra promessa che stiamo per fare
corri che oh sì non è strettamente vero
che è un’altra promessa perché lo è
e un oggetto contenente la promessa
qui come valore di una proprietà, quindi questo è
non agisce un’altra promessa che itererà dopo
non è in realtà un altro se il tasso
in questo momento lo chiameremo
un’altra area un altro iteratore che sto per fare
fai di nuovo ora fa un po ‘di più
senso
quindi un altro iteratore qui sta tornando
un altro iteratore e sul valore
proprietà ha questa promessa che noi
voglio che facciamolo capirlo
un’altra promessa
e un altro iteratore è uguale al valore che è
la nostra promessa fa eco a quello che è bello ora
avere la promessa e questa è una promessa
bene ho intenzione di cancellare questa linea e
ci accingiamo a risolvere questo promessa come
beh, ho intenzione di chiamare questo perché no
impazzire, lo ripuliremo più tardi
e siamo di nuovo sì come abbiamo fatto sopra
andando a passare questo all’iteratore usando
dopo vediamo se questo ci ha veramente preso
il post quindi ho intenzione di eliminare questo
linea di risposta qui ed è allora che sono
andando a console.log questo è il post
post e corriamo che vediamo se ha ottenuto
noi quello che volevamo, sì, sì
quindi ora post è e otteniamo la risposta
del JSON e in effetti l’intera cosa
Funziona anche qui il titolo
Posso effettivamente cancellare questo e in realtà
ora fa esattamente quello che ha fatto il CEO
lasciatemi solo rimandare questo commento e scappare
di nuovo e vedrai che noi solo
CEO implementato ora che abbiamo il
piena implementazione delle rune attraverso
questo CEO via perché ora abbiamo il nostro
la propria implementazione ah, passiamo attraverso
questa linea per linea, quindi cosa succede prima
è che chiamiamo correre qui bene e noi
passare in una funzione generatore quindi correre qui
sta per essere passato il generatore e
la prima cosa che farà è
generatore di chiamata questo non esegue il
generatore che succederebbe se generatore
era una funzione normale no invece è
andando a ricevere un iteratore e a
effettivamente ottenere l’iteratore per l’esecuzione
il generatore per iniziare a correre chiamiamo
avanti , solo questa prima volta
non passare alcun argomento qui perché
è è il primo che abbiamo usato sempre
sta andando correndo questa linea
qui dichiarerà questo tuo io / o
variabile qui e lo passerà
in per recuperare il recupero sta per risolvere o
o restituire la promessa e che sta per
entrare in questa parola chiave di rendimento e il
generatore sta andando dire come hey non lo faccio
so cosa questa promessa sto per passare
a te corri a fare qualcosa e dammi
qualcosa indietro e questo ci spinge verso il basso
qui così questo ci dà questa iterazione
oggetto e la promessa sarà
il valore sull’oggetto di iterazione può
prendi quella promessa per risolvere quella promessa
usando poi
come ogni altra promessa quindi questa X qui dentro
la prima corsa sarà la
risposta giusta risposta per rendere questo a
po ‘di più pedagogico e ci accingiamo a
passalo al prossimo iteratore e
questo ci riporta a questo risultato
qui quindi questo non sta andando nella
risposta qui e noi quaggiù è
chiamando il punto Jason sull’oggetto risposta
che ci darà un’altra promessa che
il generatore di nuovo con resa
alla funzione di corsa e questo è ciò che
succede qui sta per arrivare
un altro iteratore qui che estraiamo
in un’altra promessa e facciamo l’esatto
la stessa cosa qui lo risolve in un nuovo
valore quindi questo sarà il post
e lo passiamo di nuovo nell’iteratore
come argomento per il prossimo e che porta
noi di nuovo qui la resa sta per passare
fuori questo post lì e poi eseguiamo
un titolo e poi lo echemo e poi
siamo qui per cui funziona la nostra funzione di esecuzione
questo caso specifico perché abbiamo solo
dare dichiarazioni, ma immaginiamo
che avevamo 10 di loro, quindi questo
non funzionerebbe perché avremo solo un
grande piramide dove proprio in quel momento all’interno del
questo e questo quindi facciamo un ricorsivo
funzione di questo
stiamo avendo un problema qui perché
prometti top allora non è una funzione
perché sai la promessa qui non lo è
ed è non è questo in realtà è un
stringa quindi se si mangia il punto raishin fatto
lo restituiamo solo per vedere se funziona
sì, Shakir come noi abbiamo questa corsa al
fine corsa ha portato in Valhalla e cioè
essere una carriera qui e anche correre
risultato in blu blu blu blu
blu blu blu fantastico facciamolo
qui come spingere questa cosa qui pulita
questo su un po ‘di indentazione questo qui finora
abbiamo parlato di cosa sono i generatori e
e ora abbiamo un po ‘come usarlo
loro ma non è chiaro perché sì
a volte quando sto spiegando
concetti di programmazione sullo spettacolo che ho
Ho una chiara ragione per farlo lo sono
super entusiasta del concetto e io
posso dirti perché non è così
quando si tratta di generatori così quando
arriva alla programmazione c’è molto
cose là fuori giusto
anche le caratteristiche sono ufficialmente
implementato in JavaScript intendo proprio
perché lo abbiamo fatto non significa
che è necessariamente una buona idea
i generatori sono certamente molto interessanti e
loro ti permettono di fare questo trattamento a
codice sincrono come se fossi
scrivere un codice sincrono che è simile
c’è qualcosa in quello che è
molto attraente ma d’altra parte io
sentiti come le promesse che conosci qui
questo se si guarda a questo questo
l’implementazione qui non è davvero
scienza missilistica mi sento come se le promesse sono
o stanno bene come ci sono problemi con
ovviamente, ma non me ne sento
questo è come un enorme miglioramento
i generatori hanno questo smarty pants perché
io li pensano di essere molto molto intelligente
e bella soluzione a un problema, ma io sono
non sinceramente convinto che in realtà
semplifica le cose ma di nuovo non ne sono sicuro
potrebbe essere che non ci sia stato
un’implementazione di ciò che ho
trovato avvincente o semplicemente
qualcosa che non vedo lì
potrebbe essere qualcosa in generatori o
non ci potrebbe essere in entrambi i casi
amo avere una discussione su questo cosa
Cosa credi che lascerai o?
commentare in basso o forse su votare
il commento di qualcun altro che hai pensato
erano perspicaci sull’argomento che hai
guardato un episodio di fun fun function I
rilascio leasing il lunedì mattina ah Oh
800 GMT ora se ti è piaciuto questo episodio
assicurati di controllare il canale
sotto e vedi se ce ne sono altri
episodi che solleticano la tua fantasia forse
potresti persino prendere in considerazione l’iscrizione o
forse seguimi su Twitter
Please follow and like us: