Contenu connexe
Similaire à Node.js - #4 - Timers - Rodrigo Branas (20)
Plus de Rodrigo Branas (16)
Node.js - #4 - Timers - Rodrigo Branas
- 2. Por meio dos timers, é possível
agendar a execução de funções
- 3. Criando um timer com setTimeout
setTimeout.js
1. console.log('A
'
+
new
Date());
2. setTimeout(function
()
{
3.
console.log('B
'
+
new
Date());
4. },
3000);
- 8. Invertendo a ordem de execução
setTimeoutReverse.js
1. setTimeout(function
()
{
2.
console.log('B
'
+
new
Date());
3. },
3000);
4. console.log('A
'
+
new
Date());
- 10. Por que ao inverter a ordem
o resultado é o mesmo?
- 11. Para evitar o bloqueio do event loop, que
é executado em uma única thread, as
funções invocadas pelos timers ficam
aguardando em uma fila.
- 13. Cancelando um timer com clearTimeout
clearTimeout.js
1. var
a
=
setTimeout(function
()
{
2.
console.log('A
'
+
new
Date());
3. },
3000);
4. var
b
=
setTimeout(function
()
{
5.
console.log('B
'
+
new
Date());
6. },
3000);
7. clearTimeout(a);
- 16. Criando um timer com setTimeout
setTimeoutInterval.js
1. var
interval
=
function
(callback,
time)
{
2.
setTimeout(function()
{
3.
callback();
4.
interval(callback,
time);
5.
},
time);
6. };
7. interval(function()
{
8.
console.log('R
'
+
new
Date());
9. },
1000);
- 19. Criando um timer com setInterval
setInterval.js
1. setInterval(function()
{
2.
console.log('R
'
+
new
Date());
3. },
1000);
- 21. Cancelando um timer com clearInterval
clearInterval.js
1. var
i
=
setInterval(function()
{
2.
console.log('R
'
+
new
Date());
3. },
1000);
4. setTimeout(function()
{
5.
clearInterval(i);
6. },
5000);
- 23. E se a intenção for apenas colocar a
função na fila, para executar depois?
- 24. Criando um timer imediato
setTimeoutZero.js
1. console.log('A
'
+
new
Date());
2. setTimeout(function()
{
3.
console.log('I
'
+
new
Date());
4. },
0);
5. console.log('B
'
+
new
Date());
- 27. Criando um timer imediato
setImmediate.js
1. console.log('A
'
+
new
Date());
2. setImmediate(function()
{
3.
console.log('I
'
+
new
Date());
4. });
5. console.log('B
'
+
new
Date());
- 30. Medindo a performance do setTimeout
setTimeoutZeroTime.js
1. console.time('T');
2. setTimeout(function()
{
3.
console.timeEnd('T');
4. },
0);
- 32. Medindo a performance do setImmediate
setImmediateTime.js
1. console.time('I');
2. setImmediate(function()
{
3.
console.timeEnd('I');
4. });
- 37. Rodrigo Branas
Agile Code: http://www.agilecode.com.br
Twitter: @rodrigobranas
SlideShare: http://www.slideshare.com/rodrigobranas
YouTube: http://www.youtube.com/rodrigobranas
LinkedIn: http://br.linkedin.com/in/rodrigobranas
+Plus: https://plus.google.com/+RodrigoBranas
GitHub: http://www.github.com/rodrigobranas