我一直在阅读jQuery延迟和承诺,我看不出使用.then()&.done()成功回调之间的区别.我知道Eric Hynds提到.done()并.success()映射到相同的功能,但我猜是这样做的,.then()因为所有的回调都是在成功操作完成时调用的.
任何人都可以请你告诉我正确的用法?
我需要以同步方式进行三次HTTP调用,如何将数据从一个调用传递到另一个调用?
function first()
{
ajax()
}
function second()
{
ajax()
}
function third()
{
ajax()
}
function main()
{
first().then(second).then(third)
}
Run Code Online (Sandbox Code Playgroud)
我试图将延迟用于两个函数,我想出了一个部分解决方案.我可以将它扩展为三个功能吗?
function first() {
var deferred = $.Deferred();
$.ajax({
"success": function (resp)
{
deferred.resolve(resp);
},
});
return deferred.promise();
}
function second(foo) {
$.ajax({
"success": function (resp)
{
},
"error": function (resp)
{
}
});
}
first().then(function(foo){second(foo)})
Run Code Online (Sandbox Code Playgroud) 我使用jQuery.而且我不希望在我的应用程序上进行并行AJAX调用,每个调用必须在开始之前等待之前的调用.怎么实现呢?有帮助吗?
更新如果有XMLHttpRequest或jQuery.post的任何同步版本,我想知道.但顺序!=同步,我想要一个异步和顺序的解决方案.