O que faz o Zone.js no Angular 2?

Clayton K. N. Passos
codigorefinado
Published in
2 min readDec 9, 2016
Exclusivo para assinantes…

Por e baixo dos panos, Angular 2 usa algo chamado Zone.js, que em poucas palavras, intercepta todas as APIs assíncronas no navegador, utilizando-se de uma técnica conhecida como “Monkey Patching”.

Monkey Patching é uma técnica que sobrescreve, estende ou até mesmo suprime o comportamento padrão do código sem mudar o código fonte.

Nós poderíamos chamar setTimeout, conhecido por disparar o mecanismo de detecção de mudanças, e decidir o que ele deve realmente fazer.

Veja um exemplo simples de Monkey Pathing

let originalSetTimeout = window.setTimeout; window.setTimeout = (cb, milliseconds) => {

console.log(‘Intercepting setTimeout…’); originalSetTimeout.call(null, cb, milliseconds);

}

setTimeout(() => { console.log(‘Monkey patching!!!’);}, 1000);

Utilizando-se do Zone.js, é uma das maneiras que o Angular sabe quando atualizar o DOM, poderíamos dizer, que zone.run() é novo $digest().

Mais conhecimento como este, está ao seu alance no meu Curso de Angular

--

--