Para quem não entendeu o fluxo, vou tentar explicar mais ou menos, o yield é como um marcador de posição do iterador da função, esse marcador possui um valor interno que o representa, nesse caso é o "value" que o professor está extraindo. Você precisa utilizar o next() da primeira vez para o iterador entrar nesse primeiro "estado" de marcação, dai esse iterador será pausado automaticamente, e é ai que o professor extrai o primerio value. Em seguida, é necessário o next() mais uma vez para pularmos para o pŕoximo estado, porém, você inseriu um valor nesse next, que no caso foi next("Bruno"), dai a primeira coisa a ser feita é atribuir o nome "Bruno" no value do yield que o iterador está atualmente, em seguida é feito o processo de next, ou seja, pular para o pŕoximo estado "yield", ao qual iremos utililzar mais uma vez o atributo value e extrair o "nome" desse estado, e o processo continua até que cheguemos até a última marcação de posição, e com o comando value, extraimos o valor armazenado nesse yield e finalizamos o fluxo com o return da função.
@fredycfh7 ай бұрын
esse assunto me deu um nó na mente kkkk me senti na primeira aula de lógica de programação, acho que vou ter que conversar bastante com o chat gpt haha
@Damartinzz29 күн бұрын
te entendo dms
@alexpinheiro151213 күн бұрын
você é uma benção! parabens pelo trabalho
@oraçõesdearuanda10 ай бұрын
Pro pessoal que tiver dúvidas sobre o porquê não colocar na primeira chamada, fica a resposta do queridíssimo ChatGPT... No contexto dos geradores em JavaScript, a primeira chamada a `next()` é especial. Nessa primeira chamada, o valor passado como argumento para `next()` não será atribuído a nenhuma variável dentro da função geradora. Em vez disso, esse valor é ignorado. Isso ocorre porque, na primeira chamada a `next()`, o gerador ainda não começou a executar o código interno, ele está no início da função. No código fornecido, na primeira chamada a `next()`, o gerador está pausado no primeiro `yield`, que é "Qual é o seu nome?". O valor passado nessa chamada não será atribuído a `nome`, pois o gerador ainda não chegou à linha onde `nome` é definido. Portanto, colocar "Vinicios" na primeira chamada não afetaria a variável `nome`, pois o valor passado na primeira chamada a `next()` é ignorado. O valor passado na segunda chamada a `next()` é o que realmente é atribuído a `nome`, porque é nesse ponto que a execução do gerador atinge a linha `let nome = yield "Qual é o seu nome?";`. Espero que isso esclareça por que "Vinicios" não pode ser colocado na primeira chamada. Se precisar de mais alguma explicação ou esclarecimento, não hesite em perguntar!
@sergioschultz3807Ай бұрын
Interessante essa função geradora, já to imaginando o que posso fazer com ela.
@juniosantos44102 жыл бұрын
òtima aula professor, professor poderia fazer um pequeno check list, a respeito de quais situações são mais adequadas o uso de arrowFunction e funções geradoras? desde já agradeço.
@CoffeeSkull-j5f8 күн бұрын
Professor, parabéns mais uma vez pelo excelente trabalho. Poderia indicar um livro como material de apoio, caso não tenha indicado? (Acho que o senhor devia escrever um 🙂)
@pauloroberto-gz4kv Жыл бұрын
O yield seria o pai das funções assincronas? Por que podemos trabalhar com promesas e async await hoje. Uma aula magnífica 😃
@Savio_Dias Жыл бұрын
É impossível ter um professor melhor não existem, minha faculdade que estou pagando não me ensina nada. Quando tiver melhor irei passar a apoiar suas aulas
@adrianmorais676 Жыл бұрын
Parabéns pelo canal e a vontade em compartilhar o seu conhecimento conosco! Aprendi muito com você... Uma única sugestão para os próximos cursos, após uma aula passar uma lista de exercícios, para ajudar a massificar o conteúdo.
@Savio_Dias Жыл бұрын
Aqui sim é um professor de verdade, não é os meia canela que vejo ensinando não...
@JoelHolanda_5 ай бұрын
Muito bom professor. Que Deus o prospere ❤
@luizg.552611 ай бұрын
Estou aprendendo muito com esse curso!
@ernestinacarneiro Жыл бұрын
Nem fazia ideia que isso existia. Obrigada, prof.!
@t.t.o.p Жыл бұрын
nem eu, e olha que paguei um curso de +380 reais e não tem issoKKK
@ernestinacarneiro Жыл бұрын
@@t.t.o.p 😆😆
@brunodluca3993 Жыл бұрын
Aula muito boa, professor estou aprendendo muito!
@MateusSantos-do4it2 жыл бұрын
Conteúdo de extrema qualidade!! Parabéns!!
@Elldevv Жыл бұрын
conteúdo de valor, obrigado por nos passar o seu conhecimento...
@Netavin Жыл бұрын
Não imaginava o leque de opções em Funções... Valeu!
@webradioasasdaliberdadejoi13862 жыл бұрын
Na baia sor!
@amiltongsilva8917 Жыл бұрын
Essa função seria perfeita para criação de códigos tipo autonumeração. Entendi bem professor? Aproveito também para externar minha admiração e gratidão pelo seu comprometimento conosco, inscritos nesse canal. Grato.
@noturno4842 Жыл бұрын
Isso expandir muitas ideias que tiver após essa aula
@augustowhitaker67312 жыл бұрын
O linguagem complicada viu. mas a aula é top.
@yuri_santos8882 жыл бұрын
extremamente agradecido por ter achado esse de js ! ce é lindo continua fazendo videos p nos
@miranda4923 Жыл бұрын
Aula top demais moço.
@pauloofranco56632 жыл бұрын
Obrigado pelo vídeo!
@pauloalmeida17322 жыл бұрын
O zoom ficou bom mestre parabens pela aula
@alexmagalhaes70068 ай бұрын
O que me confundiu nesta aula foi o porquê que no primeiro exemplo a variável const itc serviu como inicialização e fez o papel da primeira chamada. Já no segundo exemplo foi necessário: a variável que faz a primeira chamada mais um console.log(itp.next( ).value) , para que o return fosse exibido. Confesso que buguei neste segundo exemplo kkk.
@bartsilva55132 жыл бұрын
lembrei dessa aula maravilhosa, e voltei pra revisar, vou precisar desse conceito para implementar algo que vou construir a título de estudo: um Quiz e para chamar as perguntas que vão estar contidas em um objeto esse conceito vai ficar muito show.....
@Tue-so2ls2 жыл бұрын
12:18 por que ele colocou aquele primeiro console.log? Isso nem faz sentido
@PatinMe2 жыл бұрын
@@Tue-so2ls tem 3 valores q vao ser retornado, o yield pergunta o nome, o yield pergunta o futebol e dps o return, Agora o por que q ele tá ali na frente e n no final, eu n sei
@batata_com_batata Жыл бұрын
@@Tue-so2ls basicamente, quando você cria uma função geradora, ela retorna um objeto iteravel, mas a execução da função em si não é iniciada até que vc chame o método next() no objeto iterável, por isso vc precisa primeiro chamar a função geradora para obter o objeto iterável, e depois chamar o método next() nesse objeto para iniciar a execução da função e obter o próximo valor retornado.
@AndersonSantos-ur4nf2 жыл бұрын
Parabéns pelo conteúdo de qualidade.
@brunotomaz95368 ай бұрын
muito obrigado professor
@bartsilva55132 жыл бұрын
adorei isso! show.....
@DanielSantos-mc8fi8 ай бұрын
o zoom melhorou o video em 10000%
@oidanieldantas2 жыл бұрын
show
@ruansilva27952 жыл бұрын
Grande professor Bruno!!
@jasonloureiro7095 Жыл бұрын
Ótima aula!!!
@gabrielalvespereira7359 Жыл бұрын
Excelente aula.
@decaastro967 ай бұрын
✅
@FernandoSantos-tv8bp2 жыл бұрын
Professor, não vejo ainda nenhuma utilidade em usar esse tipo de função em um projeto real. A função geradora é um tipo de função interessante, mas não consigo ver nenhuma utilidade dela em um projeto real.
@Tailan001 Жыл бұрын
esse foi o belo comentario, tambem pensei isso
@GAMERDIEGO2024DIEGO Жыл бұрын
talvez uma tela de erro após 3 tentativas
@rafael0322 жыл бұрын
Olá primeiramente queria agradecer aulas muito bons, estou aprendendo demais mais fiquei com uma duvida, no exemplo 2 que, quando chamo a função primeira vez não insere nenhum valor e imprime o texto, no segundo chamado insere "Bruno" só que a variável "nome" esta no primeiro yield. Por que o valor da variável do segundo chamado insere no primeiro yield?
@fabiojorge89992 жыл бұрын
Exatamente.. queria entender melhor isso.
@RCV_RCV Жыл бұрын
Muito bom!!
@saraiva_suami Жыл бұрын
por que 'bruno' e 'natação' vem depois do primeiro console.log se as duas constantes vem primeiro e a mensagem concatenada por ultimo?
@leticiafernandes421 Жыл бұрын
🔝🔝🔝
@FranciBahamult9 ай бұрын
o zoom pode ser feito nA edição..., mas dá um ttrabalhão!
@vithorac36542 жыл бұрын
oque é esse yeld?
@GustavoCawthon11 ай бұрын
Tou com muita agonia no js em ver o if sem as chaves aaaaahhh🥴🥴
@carmen.cabral2 жыл бұрын
É bem complicado. Entendi que o itp.next().value corresponde a frase 'Qual seu nome?' O itp.next('Bruno').value corresponde a frase 'Qual seu esporte favorito?' e também passa o parametro 'Bruno' O itp.next('natacao').value corresponde a frase 'Seu nome é Bruno, seu esporte favorito é natacao' e também passa o parametro 'natacao'. Parece 2 em 1, a mesma instrução vai imprimir a frase que está na posição dentro da função e vai passar o parâmetro.
@raldreyeugeniorochaamaral95316 ай бұрын
const nome=yield "qual seu nome" const esporte=yield "qual seu esporte favorito" return "seu nome é "+nome+", seu esporte favorito é "+esporte} const val=perguntas() console.log(val.next().value) console.log(val.next("Bruno").value) console.log(val.next("natação").value) Não entendi, o primeiro console chama o primeiro yield(nome), o segundo chama o segundo(esporte), o terceiro chama o return. Pq "bruno" é colocado na chamada do segundo yield referente a esporte e o natação é colocado na chamada do return?