JavaScript Assíncrono – Introdução

Em:

JavaScript tem muitas qualidades que eu, pessoalmente, admiro muito. Uma das mais divertidas é, sem dúvida, as possibilidades assíncronas desta linguagem!

Uma feature divertida e, ao mesmo tempo, complexa. O JavaScript nos dá a possibilidade de escrever utilizando alguns paradigmas interessantes (e dignos de estudo aprofundado) como o paradigma procedural, o paradigma funcional ou com Orientação a Objetos (por meio de protótipos, não de classes).

Mas todo esse benefício tem um preço, e o preço é justamente a complexidade que isso traz na hora de lermos e compreendermos um código.

Além disso, o JavaScript também trabalha com fluxos bem distintos e nós podemos “quebrar” tais fluxos utilizando algumas features da linguagem, como setTimeout, setInterval, addEventListener, entre outros.

O JavaScript sempre teve como ponto forte a possibilidade de trabalhar de forma assíncrona e, há muito, vem evoluindo o assunto. Tivemos uma importante explosão com o Ajax há mais de uma década e, antes dele, já usávamos iframes para atingirmos resultados parecidos.

Promises vieram para nos ajudar a superar o famoso callback hell, uma verdadeira “maçaroca” em que alguns códigos acabavam se tornando! As promises trouxeram um padrão para lidarmos com código assíncrono, para desenvolvermos APIs mais robustas e modernas e organizar nosso código assíncrono de maneira mais legível. Mas elas também não são nenhuma “bala de prata” e tem seus problemas.

O JavaScript moderno conta com várias novas opções que são justamente as que abordaremos nesta série. Entre elas, Promises, Async/Await, Generators, Web Worker…

Acompanhem os próximos artigos nos quais aprofundaremos cada um dos padrões e APIs.

  • Profissionais do mundo todo querem palestrar na BrazilJS 2017

    141 pessoas do mundo todo enviaram suas propostas para palestrar na sétima edição da BrazilJS Conf deste ano, que ocorre em Porto Alegre, nos dias 25 e 26 de agosto, e em Fortaleza, nos dias 1 e 2 de setembro.

  • Já é possível testar o Servo, novo browser engine da Mozilla

    Desde o lançamento do Google Chrome, em 2008, não temos uma mudança tão impactante no mundo dos browsers. Obviamente muita coisa evoluiu (muita mesmo), ES2015 e ES2016 já estão aí, novas APIs, dev-tools, etc, mas nada tão revolucionário ao ponto de mudar drasticamente a indústria e a vida dos desenvolvedores e usuários. As engines dos […]

  • Generators, yield e iterators

    Continuando com nossa série sobre o uso de JavaScript de forma assíncrona, não podemos deixar de passar pelos Generators. É muito comum precisarmos manipular itens de uma lista e, para tal, o JavaScript evoluiu e passou a nos oferecer diversos métodos como map e filter em Arrays, e construtores na própria linguagem como for…of e […]

Patrocinadores BrazilJS

Gold

Bronze

BrazilJS® é uma iniciativa NASC.     Hosted by Getup