Skip to content

Commit 0aa5cb2

Browse files
author
Nildo Júnior
committed
Translate Callbacks' section Pyramid of Doom
1 parent dc9cc80 commit 0aa5cb2

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

1-js/11-async/01-callbacks/article.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,11 @@ A convenção é:
179179

180180
Assim uma única função `callback` é usada tanto para reportar erros quanto para retornar os resultados.
181181

182-
## Pyramid of Doom
182+
## Pirâmide da Perdição
183183

184-
From the first look, it's a viable way of asynchronous coding. And indeed it is. For one or maybe two nested calls it looks fine.
184+
À primeira vista parece uma maneira viável de programação assíncrona. E realmente é. Para uma ou duas chamadas aninhadas está ok.
185185

186-
But for multiple asynchronous actions that follow one after another we'll have code like this:
186+
Mas para múltiplas ações assíncronas que seguem uma depois da outra, vamos ter um código como esse:
187187

188188
```js
189189
loadScript('1.js', function(error, script) {
@@ -202,7 +202,7 @@ loadScript('1.js', function(error, script) {
202202
handleError(error);
203203
} else {
204204
*!*
205-
// ...continue after all scripts are loaded (*)
205+
// ...continua depois que todos os scripts são carregados (*)
206206
*/!*
207207
}
208208
});
@@ -213,14 +213,14 @@ loadScript('1.js', function(error, script) {
213213
});
214214
```
215215

216-
In the code above:
217-
1. We load `1.js`, then if there's no error.
218-
2. We load `2.js`, then if there's no error.
219-
3. We load `3.js`, then if there's no error -- do something else `(*)`.
216+
No código acima:
217+
1. Carregamos `1.js`, e depois, se não tiver nenhum erro.
218+
2. Carregamos `2.js`, e depois, se não tiver nenhum erro.
219+
3. Carregamos `3.js`, e depois, se não tiver nenhum erro -- faz outra coisa `(*)`.
220220

221-
As calls become more nested, the code becomes deeper and increasingly more difficult to manage, especially if we have a real code instead of `...`, that may include more loops, conditional statements and so on.
221+
À medida em que as chamadas ficam mais aninhadas, o código vai ficando mais profundo e cada vez mais difícil de gerenciar, especialmente se nós tivermos um código real em vez de `...`, que pode incluir mais laços, condicionais e assim por diante.
222222

223-
That's sometimes called "callback hell" or "pyramid of doom."
223+
Isso é às vezes chamado de "callback hell (inferno dos callbacks)" ou "pyramid of doom (pirâmide da perdição)."
224224

225225
<!--
226226
loadScript('1.js', function(error, script) {
@@ -248,11 +248,11 @@ loadScript('1.js', function(error, script) {
248248

249249
![](callback-hell.svg)
250250

251-
The "pyramid" of nested calls grows to the right with every asynchronous action. Soon it spirals out of control.
251+
A "pirâmide" de chamadas aninhadas cresce para a direita a cada ação assíncrona e rapidamente sai de controle.
252252

253-
So this way of coding isn't very good.
253+
Então esse jeito de programar não é muito bom.
254254

255-
We can try to alleviate the problem by making every action a standalone function, like this:
255+
Nós podemos tentar diminuir o problema fazendo cada ação ser uma função separada, assim:
256256

257257
```js
258258
loadScript('1.js', step1);
@@ -279,17 +279,17 @@ function step3(error, script) {
279279
if (error) {
280280
handleError(error);
281281
} else {
282-
// ...continue after all scripts are loaded (*)
282+
// ...continua depois que todos os scripts são carregados (*)
283283
}
284284
};
285285
```
286286

287-
See? It does the same, and there's no deep nesting now because we made every action a separate top-level function.
287+
Viu? Isso faz a mesma coisa, e não tem um aninhamento profundo agora porque nós fizemos cada ação em uma função separada no mesmo nível.
288288

289-
It works, but the code looks like a torn apart spreadsheet. It's difficult to read, and you probably noticed that one needs to eye-jump between pieces while reading it. That's inconvenient, especially if the reader is not familiar with the code and doesn't know where to eye-jump.
289+
funciona, porém o código parece uma planilha dividida. É difícil de ler, e você provavelmente percebeu que precisamos pular entre as partes do código enquanto estamos lendo ele. Isso é inconveniente, especialmente se o leitor não estiver familiarizado com o código e não souber para onde pular.
290290

291-
Also, the functions named `step*` are all of single use, they are created only to avoid the "pyramid of doom." No one is going to reuse them outside of the action chain. So there's a bit of a namespace cluttering here.
291+
Além disso, as funções chamadas `step*` são todas utilizadas apenas uma vez. Elas são criadas apenas pra evitar a "pirâmide da perdição." Ninguém vai reutilizá-las fora da cadeia de ações. Então tem um pouco de bagunça aqui.
292292

293-
We'd like to have something better.
293+
Gostaríamos de ter algo melhor.
294294

295-
Luckily, there are other ways to avoid such pyramids. One of the best ways is to use "promises," described in the next chapter.
295+
Felizmente, existem outras maneiras de evitar essas pirâmides. Uma das melhores maneiras é usar "promises (promessas)", descritas no próximo capítulo.

0 commit comments

Comments
 (0)