Callbacks com Promises

Trabalho novo, coisas novas, e é claro… Novos desafios 😀

Dessa vez foi com o Promises do JavaScript.
Chamadas assíncronas não são tão fáceis de se entender, quando se é um entusiasta na linguagem…

Mas para você que, como eu, tem alguns problemas ainda com isso…
Deixo uma dica que talvez, quem sabe, vai que.. te ajude.

Parei num problema, onde tenho múltiplas chamadas assíncronas com parâmetros diferentes, porém que retornam o mesmo resultado e possuem o mesmo tratamento…

Pensei…, um dos grandes trunfos (pelo menos eu acho que é…) do JS são os callbacks… Por que não usar?

A implementação é bem simples…

function calcular(def, i){
 var t = i + 1;
 return { def, t };
}

function resolveCalcular(i){
 i.def.resolve(i.t);
}

function Ola(){
 var def = $.Deferred();
 $.when(calcular(def, 10)).then(resolveCalcular);
 return def.promise();
}

Ola().then(function(e){
 console.log(e);
});

Não existe muita mágica, a questão é: na nossa função calcular(), retornamos além do valor que queremos a promise.
Ambos “encapsulados” num único objeto. Na nossa callback, utilizamos este objeto e por la resolvemos a promise passando o resultado esperado.

Espero que ajude…
Até mais XD