Guia Dev
6.9K subscribers
3.73K photos
235 videos
7 files
1.52K links
< ! - - Guia para Desenvolvedores @FrontEndBR e @BackendBrasil. - - >
✔️ Dicas
✔️ Downloads
✔️ Tutoriais
✔️ Vagas e muito mais.

Parceiros:
👉🏻 https://telegra.ph/Parceiros-Guia-Dev-02-04

PARCERIA:
@roberth_p
Download Telegram
Guia Dev
Photo
Assim que o usuário faz login em nossa aplicação, geralmente as páginas que ele pode acessar são completamente diferentes.
⠀
No React Navigation podemos controlar isso criando uma função que recebe a informação se o usuário está logado ou não e aí retorna uma stack de rotas baseado nessa informação.
⠀
O uso do Switch Navigator faz com que a navegação entre páginas logadas/deslogadas não produza nenhum efeito visual e não permita voltar à página anterior, garantido que após logado ou deslogado o usuário não possa retornar.
Evan You Previews Vue.js 3.0🔥

#vue

http://bit.ly/2ECcBp0
Aí o seu filho pede um switch no natal
CollabCode:
Nas lives surpresas que tenho feito, foco em trocar conhecimento sobre Coisas do #JavaScript Moderno. Temos vídeos sobre:

- var, let e const
- Template String
- Tagged Template String
- Arrow Function

As lives que já foram e as que virão estão
https://www.youtube.com/playlist?list=PLirko8T4cEmzs-mQkPO_vxfPxRZ1Wv5_m
Forwarded from queroser.ninja
Pra você que quer aprender mais sobre JS, amanhã faremos um meetup online, das 20h às 21h (horário de Brasília), pra falar um pouco mais sobre métodos de array, e tirar dúvidas sobre o assunto!

Se inscreva no nosso canal e ative o lembrete pra não esquecer:
https://www.youtube.com/watch?v=Dy1VDtPxCp0

O link da parte 1 está na descrição do vídeo! Te vejo por lá amanhã :D
Forwarded from queroser.ninja
🚨
Oi Pessoal! Só passando aqui pra relembrar que os cursos JavaScript Ninja, React Ninja e Git e GitHub Ninja estão em promoção somente até dia 31/12, ok? :D

É a última promoção do ano :D

Então corre pra aproveitar: 🏃 🏃
https://queroser.ninja/promocoes
Forwarded from queroser.ninja
#javascript

Agora com a nova feature async / await no JavaScript - que é um _sugar_ para Promises - nosso código pode ficar muito menor e mais legível =)

Mas nem tudo são flores: com Promises, nós tratamos os erros usando o método .catch. Como async / await simula um comportamento síncrono, a forma de tratar erros fica no estilo mais "tradicional", usando try / catch, o que é bem feio xD

Mas tem uma forma de contornar isso, vou te mostrar :D

Imagine que seu código hoje, usando async / await, está assim:

async function func () {
try {
const result = await promiseFunction()
// aqui vc faz alguma coisa com o resultado
} catch (e) {
console.error(e) // se der algum erro, vai cair aqui
}
}

Dá pra elimir esse try / catch de uma forma bem elegante, olha só:

function to (promise) {
return promise
.then((result) => [null, result])
.catch((error) => [error])
}

Dá uma olhada nessa função to: Ela recebe uma promise, e aguarda o resultado dela - usando o .then. Quando a promise for resolvida, então nós retornamos um array com dois valores: null no primeiro índice, e o resultado - result - no segundo índice.

E, se por acaso der algum erro, nós retornamos um array com o erro no primeiro índice desse array.

E para usar essa função to, nós fazemos dessa forma:

async function func () {
const [error, result] = await to(promiseFunction())
if (error) {
return console.error(e) // se der algum erro, vai cair aqui
}

// aqui vc faz alguma coisa com o resultado
}

Olha a diferença que ficou nossa função! Veja que na função to, nós já tratamos o erro usando .catch, então, se a promise resolver sem problemas, ou der erro, o próximo .then vai receber esse valor. No caso, o próximo .then vai receber o array retornado, ou pelo primeiro .then da função to, ou pelo .catch.

E esse array tem um padrão: o primeiro indice é sempre o objeto de erro. Se a promise resolve sem problemas, então nós passamos null no primeiro índice desse array, e o resultado no segundo.

Se der erro, só passamos o error no primeiro índice, e como não passamos o result, ele vai ser undefined :)

Agora, para usar o to, dentro da função func, nós só precisamos envolver nossa promise com essa função, e o retorno disso já vai ser um array!

Como já tratamos o erro dentro da função to, não precisamos do try/catch. Se der algum erro, esse erro vai estar na variável error, no primeiro índice do array onde criamos as variáveis error e result, utilizando a técnica de destructuring assignment :D

Super legal, não? :D

Eu tenho usado bastante essa ideia nos meus projetos!

A fonte foi esse artigo aqui: https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/