Nó Loops

Se você está programando no Node, e se você é um iniciante ou não quer usar nenhum módulo, você definitivamente enfrentará um problema como;

“Tenho tarefas a serem realizadas dentro de um loop que leva mais tempo do que a própria iteração”

Minha resposta; Claro! Digamos que você esteja usando o Redis e até mesmo com um procedimento simples como ir ao Redis e buscar alguns valores múltiplos e, posteriormente, processá-los de acordo com uma lógica vai demorar muito mais do que a simples iteração. Estamos comparando pessoas “getListOfAllUsers” a “i ++”.

Portanto, aqui está um truque que eu sugeriria. Contadores de loop! Aqui está algo que pode causar um problema;

for(var i=0;i<someList.length;i++) {
fetchInformation
(someList[i]);
}

console
.log("Success");

Resultado? Claro, FALHA. No entanto, aqui está como mudar as coisas;

  1. Insira um parâmetro de retorno de chamada que terá uma função que será disparada assim que a operação for concluída.
  2. Insira um loopCounter que decidirá quando terminar seu loop.

Portanto, o novo código seria;

var loopCounter = 0;
for(var i=0;i<someList.length;i++) {
fetchInformation
(someList[i], function(data) {
loopCounter
++;
});
if(loopCounter == someList.length) //Think it like loop.on("finished") event
console
.log("Success");
}

Espero que goste ou me mostre uma maneira melhor de implementar isso. Mas é assim que eu uso e espero que ajude algumas pessoas que estão lutando com a estrutura assíncrona do Node.