如何使用jQuery promises链接三个异步调用?

如何使用jQuery promises链接三个异步调用?

我需要以同步方式进行三次HTTP调用,如何将数据从一个调用传递到另一个调用?

function first(){
   ajax()}function second(){
   ajax()}function third(){
   ajax()}function main(){
    first().then(second).then(third)}

我试图将延迟用于两个函数,我想出了一个部分解决方案。我可以将它扩展为三个功能吗?

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)})


MMTTMM
浏览 436回答 3
3回答

皈依舞

很晚回复,但我猜答案缺少一些直接的链接代码。链接事件非常简单,在jquery中有promise支持。我使用以下链接:$.ajax().then(function(){    return $.ajax() //second ajax call}).then(function(){    return $.ajax() //third ajax call}).done(function(resp){    //handle final response here  })它很简单,没有复杂的for循环或多个嵌套的回调。
打开App,查看更多内容
随时随地看视频慕课网APP