JSFiddle - React, Tailwind, and code Playground
JavaScript
var Anonimo = {
minhaFuncao: function(indice, callback) {
//faz algumas coisas
//finaliza com callback
setTimeout(function() {
callback(indice, 'retornaAlgumaVariavel');
}, Math.random() * 500 + 100);
}
}
var OutroAnonimo = {
outraFuncao: function(callback) {
//faz algumas coisas
//finaliza com callback
setTimeout(function() {
callback();
}, Math.random() * 500 + 100);
}
}
function processar(arr) {
if (arr.length == 0) return;
var nr = arr.shift(); // e aqui encurta ao mesmo tempo a array
console.log("Valor " + nr);
Anonimo.minhaFuncao(nr, function(ind, variavelRetorno) {
console.log("Entrou no indice " + ind);
OutroAnonimo.outraFuncao(function() {
console.log("Passou aqui... e terminou o indice", ind);
processar(arr);
});
});
}
// para gerar o conteudo
var valores = [];
for (var i = 0; i < 15; i++) {
valores.push(i);
}
processar(valores);