DEV Community

Cover image for JavaScript: Microtasks e Macrotasks

JavaScript: Microtasks e Macrotasks

Eduardo Rabelo on June 28, 2019

Duas histórias no mesmo Event Loop e suas prioridades Dentro do Event Loop do JavaScript/Node.js, existem dois tipos de tarefas com prio...
Collapse
 
cleiton55048426 profile image
Cleiton

Ótimo post Eduardo. Muito bom poder encontrar conteúdo de qualidade e em português aqui no dev.

Sendo o callback uma forma de ancestral das promisses, ele se encaixaria como uma microtask, certo?

Collapse
 
oieduardorabelo profile image
Eduardo Rabelo

fala Cleiton! muito obrigado pelas palavras, eu costumo postar uma vez por semana aqui e no meu Medium (link no profile),

Sendo o callback uma forma de ancestral das promisses, ele se encaixaria como uma microtask, certo?

se usarmos ES5 como a "forma ancestral", nós não tínhamos o objeto "Promise" naquele tempo, boa parte de toda tarefa tardia de bibliotecas como jQuery, Angular 1, Backbone, etc, usavam alguma implementação com setTimeout/setInterval ou alguma outra mágica. Isso significa que se encaixam na categoria de Macrotask.

agora, você precisa entender/olhar a implementação do callback, pois o seguinte é válido:

function fazAlgo(callback) {
fetch('https://jsonplaceholder.typicode.com/todos/1')
  .then(response => response.json())
  .then(json => callback(json))
}

fazAlgo(json => {
  // isso é um callback rodando em microtask
})

no exemplo acima, temos um callback sendo executado dentro de uma promise, que por spec é microtask :P

o caótico mundo do JS! :D

Collapse
 
alexparra profile image
Alex Parra

Nice heads up.

Collapse
 
gustavolopes95 profile image
GustavoLopes95

Nice post

Collapse
 
marcos1305 profile image
Marcos Vinicius

Muito bom!!