Как связать три асинхронных вызова с помощью обещаний jQuery?

У меня есть три HTTP-вызова, которые мне нужно сделать синхронно, и как мне передать данные из одного вызова в другой?

function first()
{
   ajax()
}

function second()
{
   ajax()
}

function third()
{
   ajax()
}


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

Я попытался использовать deferred для двух функций, и я нашел частичное решение. Могу ли я расширить его на три функции?

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

Ответы на вопрос(10)

Ваш ответ на вопрос