JavaScript · Essencial · Inglês · Informal
callback hell
Aninhamento profundo de callbacks assíncronos, que forma uma pirâmide de código difícil de ler e de tratar erros. Promises e async await surgiram em grande parte para resolver isso.
Onde usar
Aparece em código Node antigo com fs e requisições encadeadas. Em code review, sugere-se transformar em promises e async await, ou ao menos extrair funções nomeadas.
Em código
const fs = require('node:fs');
fs.readFile('a.txt', (e1, a) => {
fs.readFile('b.txt', (e2, b) => {
fs.readFile('c.txt', (e3, c) => {
console.log(a + b + c);
});
});
});Exemplos
This old script is a perfect callback hell.
Esse script antigo é um callback hell perfeito.
Async await got us out of callback hell.
O async await nos tirou do callback hell.
Cuidado
Achar que o problema é só estético: o tratamento de erros se repete em cada nível e é fácil de esquecer.
Sinônimos
pirâmide da perdição, pyramid of doom