1
我有這個jQuery代碼,其中第二個$.post()
依賴於第一個$.post()
執行,如果第一個尚未完成或者在執行期間還是失敗或第二個啓動之前,這可能是個問題。也許我可以使用某種類型的鏈接調用來解決問題,但我認爲根本不好。我如何獲得這個使用例如Coalan Async?
var paisesFromEntity;
$.post(Routing.generate('productoGuardarPasoCinco'), $form.serialize(), 'json').done(function (data, textStatus, jqXHR) {
if (data.entities !== "undefined" || data.entities != "") {
paisesFromEntity = data.entities.paises;
}
}).fail(function() {
return false;
});
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);
};
$.post(Routing.generate('agregarPaisesDistribuidor'), $form.serialize(), 'json').done(function (data, textStatus, jqXHR) {
fullList = fullList.concat(paisesFromEntity, getValues(data.entities));
$('#td-' + data.idToUpdate).html(returnList(fullList));
}).fail(function() {
return false;
});
你已經回答了你自己的問題。如果你想使用[鏈接庫](https://github.com/caolan/async),只需閱讀它的文檔。不要在SO上發佈問題,要求其他人實現您的功能。 – hon2a 2014-11-25 13:16:18
@ hon2a這是另一個問題的分支。我建議修改答案會分散注意力,所以請他將其分開。 – deitch 2014-11-25 13:17:31
這並沒有改變OP應該對[使用Promise](http://joseoncode.com/2011/09/26/a-walkthrough-jquery-deferred-and-promise/)進行自己的研究的事實把問題放在這裏。 – hon2a 2014-11-25 13:20:21