How Do I Manage Timing Dependencies With Multiple Parallel $.post And Async Lib?
I've this jQuery code where second $.post() relies on first $.post() execution and this could be a problem if first one is not done yet or fail during execute or second one start b
Solution 1:
As requested, the async lib is just fabulous - on node server-side or in the browser. Here is the lib https://github.com/caolan/async
Since you are doing these in parallel, you want to do:
function doLotsOfStuff(done) {
async.parallel([
function(cb) {
$.post(Routing.generate('productoGuardarPasoCinco'), $form.serialize(), 'json').done(function (data, textStatus, jqXHR) {
if (data.entities !== "undefined" || data.entities != "") {
cb(null,data.entities.paises);
} else {
cb();
}
}).fail(function () {
cb("error");
});
},
function(cb) {
$.post(Routing.generate('agregarPaisesDistribuidor'), $form.serialize(), 'json').done(function (data, textStatus, jqXHR) {
cb(null,getValues(data.entities));
}).fail(function () {
cb("error");
});
}
],function(err,results) {
var fullList = [].concat(results[0], results[1]);
$('#td-' + data.idToUpdate).html(returnList(fullList));
done();
});
}
Solution 2:
your code could become
var paisesFromEntity;
var deferred1 = $.post(Routing.generate('productoGuardarPasoCinco'), $form.serialize(), 'json');
var returnList = function (entities) {
if (entities.length > 0) {
var items = [];
entities.forEach(function (value, index, array) {
items.push(value.pais);
});
return items.join(', ');
}
},
fullList = [],
getValues = function(arr){
var ret = [];
$.each(arr,function(i,entry) {
ret.push(entry.pais);
});
return(ret);
};
var deferred2 = $.post(Routing.generate('agregarPaisesDistribuidor'), $form.serialize(), 'json');
$.when(deferred1, deferred2)
.then(function(resp1, resp2) {
if (resp1[0].entities !== "undefined" || resp1[0].entities != "") {
paisesFromEntity = resp1.entities.paises;
fullList = fullList.concat(paisesFromEntity, getValues(resp2[0].entities));
$('#td-' + data.idToUpdate).html(returnList(fullList));
}
});
Post a Comment for "How Do I Manage Timing Dependencies With Multiple Parallel $.post And Async Lib?"