Codar.me
789 subscribers
40 photos
26 videos
1 file
64 links
Se você busca evoluir como #dev e criar software de qualidade, está no lugar certo! Aqui vamos compartilhar conhecimento e novidades da Codar.me pra te ajudar nessa jornada! 🚀👊
Download Telegram
Codar.me
Photo
Resposta da questão do Insta:

O for vai iterar até o limite de itens do array, então a variável “i” será 0, depois 1, depois 2, depois 3.
Como temos um setTimeout, que é um método que recebe um callback e executa ele assincronamente, e como colocamos um delay de 2 segundos (2000), quando o callback é executado, uma coisa curiosa acontece, ele vai logar 4 vezes “undefined”. Se você logar só o “i” dentro do setTimeout, vai perceber que ele logs 4 vezes o número 4.

Mas peraí, ele não vai só até 3 (que é o limite de indices do array? Como ele loga 4 então?
Bom, a instrução que demos foi “i < arr.length”. No caso, 3 (que é o último índice) não é menor que arr.length, então ele continua incrementando, e quando chega no 4, vê que é menor que arr.length e para a execução, porem a variável “i” agora é 4.
Como temos um callback assíncrono com setTimeout, quando esse callback for chamado, “i” é 4 e por isso não existe no array, retornando “undefined”.
Podemos resolver isso de várias formas, mas a mais simples é: var é uma variável de escopo global, ou seja, independente de onde ela é criada, pode ser acessada de qualquer lugar.
Precisamos deixar o escopo da variável “i” apenas dentro do bloco for, que assim, a cada iteração, será criada uma variável nova, e não alterada a antiga. Assim, podemos usar let, ao invés de var, já que let tem escopo de bloco, e a cada iteração ela fica “presa” no bloco anterior.

Resumindo:
1. Problema: o código vai logar 4 vezes undefined
2. Solução: trocar var por let
Vamos começar a criar o novo site da Codar.me, e você pode acompanhar e interagir durante esse processo. Sabe como? Vai ter live code! E vai começar hoje, as 19h no nosso canal recém criado da Twitch.tv bora lá? https://www.twitch.tv/codarme
A Amazon disponibilizou vários livros 💡 DE GRAÇA 😍 por um período limitado. Totalizando quase 400 mil reais em desconto 🙃.

🤓 50.000 eBooks grátis - Amazon
Acesse a Coleção completa:
https://amzn.to/2TGg3Wu

Acesse por área:

🏠 Home Office
350 ebooks https://amzn.to/3c1j5e3

👩🏻‍💼 Administração, Negócios e Economia
1250 ebooks https://amzn.to/2M0emih

🤝 Autoajuda
238 ebooks https://amzn.to/36DprQ0

🖥 Computação, Informática e Mídias Digitais
42 ebooks https://amzn.to/3d68YWN

🙏 Religião e Espiritualidade
130 ebooks https://amzn.to/3d3rVJD

🍽 Gastronomia e Culinária
760 ebooks https://amzn.to/2yCjBBO

🦸🏻‍♀ HQs, Mangás e Graphic Novels
32 ebooks https://amzn.to/2B3zKB6

👶🏻 Infantil
109 ebooks https://amzn.to/2M1FA89

👔 Política
213 ebooks https://amzn.to/2X44wm4

👩🏼‍⚕ Medicina
180 ebooks https://amzn.to/2X0R5mO

👮🏻‍♀Policial, Suspense
52 ebooks https://amzn.to/2Ae1KRS

-

❣️ E Ainda tem mais 👇🏻👇🏻

🖥 Ebooks acima de 4 estrelas abaixo de R$ 10 de #Tecnologia
https://amzn.to/2XtsING

💡 Ebooks gerais acima de 4 estrelas abaixo de R$ 10
https://amzn.to/3goXAr5
Dessa vez uma galera acertou! Estamos evoluindo! 🎉
Explicando a resposta:

Uma função assíncrona sempre retorna uma promise. Portanto, quando chamamos “getData”, uma promise pendente será retornada ao invés de a variável “data” receber o valor da promise resolvida.

Se quisessemos pegar o valor da primes resolvida (“Resolved!”), precisaríamos usar “.then” nesse contexto.

data.then(resolved => console.log(resolved))

Isso iria logar “Resolved!”
Galera, pesquisa rápida: quanto tempo vc está na área de tecnologia (desenvolvimento de software)?
Anonymous Poll
42%
Menos de 1 ano
28%
De 1 a 3 anos
11%
De 3 a 6 anos
10%
De 6 a 10
9%
Mais que 10
Mals ai galera, problemas técnicos, acontecem :/
mas não desistirei, vou fazer uns testes e voltamos amanhã, 19h tmb :D