Chaining multiple jQuery ajax requests

У меня следующий код:

$.when(loadProjects())
    .then(function() {

        $.when.apply($, buildRequests(projects))
        .then(function(data) {

            $.when.apply($, vcsRequests(buildTypes))
            .then(function(data) {

                $.when.apply($, vcsDetailRequests(vcsRoots))
                .then(function(data) {
                    alert('done');
                });

            });

        });

    });

Каждая из функций, переданных в when.apply() возвращает массивы запросов. Я не могу выполнить вызовы buildRequests, пока не закончатся вызовы loadProjects(), так как они полагаются на информацию, возвращаемую этими вызовами. Каждый вызов зависит от информации, возвращенной предыдущим вызовом, поэтому они должны выполняться в таком порядке. Мне нужно знать, когда все вызовы завершатся, чтобы я мог обработать возвращенные данные.

Есть ли более чистый способ решить эту задачу?

5
задан JFoulkes 10 February 2012 в 11:30
поделиться