Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit f4ceac3

Browse files
committed
docs(pt): add and translate node-setimmediate.pt.md
1 parent cfcc86f commit f4ceac3

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: understanding-setimmediate
3+
displayTitle: 'Entendendo o setImmediate()'
4+
description: 'A função setImmediate da Node.js interage com o laço de evento de uma maneira especial'
5+
authors: flaviocopes, MylesBorins, LaRuaNa, ahmadawais, clean99, ovflowd, nazarepiedady
6+
category: learn
7+
---
8+
9+
Quando quiseres executar algum pedaço de código de maneira assíncrona, mas o mais cedo possível, uma opção é usar a função `setImmediate()` fornecida pela Node.js:
10+
11+
```js
12+
setImmediate(() => {
13+
// executar alguma coisa
14+
});
15+
```
16+
17+
Qualquer função passada como argumento de `setImmediate()` é uma função de resposta que é executada na próxima iteração do laço de evento.
18+
19+
Em que a `setImmediate()` difere de `setTimeout(() => {}, 0)` (passando uma pausa de 0ms), e de `process.nextTick()` e `Promise.then()`?
20+
21+
Uma função passada para `process.nextTick()` será executada na iteração atual do laço de evento, depois a operação atual termina. Isto significa que sempre executará antes de `setTimeout` e `setImmediate`.
22+
23+
Uma função de resposta de `setTimeout()` com um atraso de 0ms é muito parecido com `setImmediate()`. A ordem da execução dependerá de vários fatores, mas serão ambos executados na próxima iteração do laço do evento.
24+
25+
Uma função de resposta de `process.nextTick` é adicionada à fila de `process.nextTick`. Uma função de resposta de `Promise.then()` é adicionada à fila de micro tarefa das promessas. Uma função de resposta de `setTimeout` e `setImmediate` é adicionada à fila de macro tarefa.
26+
27+
O laço de evento executa as tarefas na fila de `process.nextTick` em primeiro, e depois executa a fila de micro tarefa das promessas, e depois executa a fila de macro tarefa.
28+
29+
Abaixo está um exemplo para mostrar a ordem entre `setImmediate()`, `process.nextTick()` e `Promise.then()`:
30+
31+
<iframe
32+
title="Um exemplo simples para mostrar a diferença entre setImmediate, nextTick e Promise"
33+
src="https://stackblitz.com/edit/nodejs-dev-setimmediate?file=index.js&zenmode=1&view=editor"
34+
alt="nodejs-dev-setimmediate-example on StackBlitz"
35+
style="height: 500px; width: 100%; border: 0;">
36+
</iframe>
37+
38+
Este código chamará primeiro `start()`, depois chamará `foo()` na fila de `process.nextTick`. Depois disto, ele lidará com a fila de micro tarefa das promessas, que imprime `bar` e adiciona `zoo()` na fila de `process.nextTick` ao mesmo tempo. Portanto, chamará `zoo()` que tem sido adicionado. No final, o `baz()` na fila de macro tarefa é chamada.

0 commit comments

Comments
 (0)