복붙노트

[JQUERY] JQuery와 이연 - 마무리에 여러 AJAX 요청을 기다리고 [중복]

JQUERY

JQuery와 이연 - 마무리에 여러 AJAX 요청을 기다리고 [중복]

해결법


  1. 1.여러 연기와 함께 () .apply) (.when 사용하고 있습니다. 매우 유용합니다 :

    여러 연기와 함께 () .apply) (.when 사용하고 있습니다. 매우 유용합니다 :

    function updateAllNotes() {
        var getarray = [],
            i, len;
    
        for (i = 0, len = data.length; i < len; i += 1) {
            getarray.push(getNote(data[i].key));
        };
    
        $.when.apply($, getarray).done(function() {
            // do things that need to wait until ALL gets are done
        });
    }
    

  2. 2.당신이 jQuery.When의 문서를 참조하십시오 경우, Ajax 호출 중 하나가 실패 할 경우, 마스터 콜백은 다음의 모든 아약스 호출이 아직 완료되지 않은 경우에도 호출됩니다 실패합니다. 이 경우 반드시 모든 통화가 완료되어 없습니다.

    당신이 jQuery.When의 문서를 참조하십시오 경우, Ajax 호출 중 하나가 실패 할 경우, 마스터 콜백은 다음의 모든 아약스 호출이 아직 완료되지 않은 경우에도 호출됩니다 실패합니다. 이 경우 반드시 모든 통화가 완료되어 없습니다.

    모든 통화 대기 할 경우,이 같은 이연 서로를 사용해야합니다, 그 결과가 무엇인지는 중요하지 않습니다 :

    $.when.apply($, $.map(data, function(i) {
        var dfd = $.Deferred();
        // you can add .done and .fail if you want to keep track of each results individualy
        getNote(i.key).always(function() { dfd.resolve(); });
        return dfd.promise();
    });
    

  3. 3.응답 brittohalloran 주셔서 감사합니다. 나는이 같은 좀,지도 매우 깨끗하게 솔루션을 적용 할 수 있었다, 그래서 나는 또한, 밑줄을 사용하고 있습니다 :

    응답 brittohalloran 주셔서 감사합니다. 나는이 같은 좀,지도 매우 깨끗하게 솔루션을 적용 할 수 있었다, 그래서 나는 또한, 밑줄을 사용하고 있습니다 :

    $.when.apply($, _.map(data, function(i) {
        return getNote(i.key);
    })).done(function() {
        alert('Be Happy');
    });
    

    유용 사악한.

  4. from https://stackoverflow.com/questions/6538470/jquery-deferred-waiting-for-multiple-ajax-requests-to-finish by cc-by-sa and MIT license