어레이에서 여러 Ajax 호출 및 완료 시 콜백 처리
저는 jQuery에서 약속을 조금 전에 사용한 적이 있지만 이 시나리오에 적용하는 데 어려움을 겪고 있습니다.이를 위해 $.when() 및 $.done() 방법을 사용하는 것을 선호합니다.
제가 알기로는 $를 만들어야 합니다.요청을 기록하고 요청이 완료되면 콜백을 실행하는 지연된 개체입니다.아래 코드에서 콜백은 에이잭스가 요청하기 전에 실행되고 그 이후가 아닙니다. 아마도 저는 잠이 필요할 것입니다.
저는 제 코드가 불완전하다는 것을 알고 있습니다. 저는 for 루프를 추가하면서 코드를 적용하는 데 어려움을 겪고 있습니다.
http://jsfiddle.net/whiteb0x/MBZEu/
var list = ['obj1', 'obj2', 'obj3', 'obj4', 'obj5'];
var callback = function() {
alert("done");
};
var requests = [];
var ajaxFunction = function(obj, successCallback, errorCallback) {
for(i = 0; i < list.length; i++) {
$.ajax({
url: 'url',
success: function() {
requests.push(this);
}
});
}
};
$.when($.ajax(), ajaxFunction).then(function(results){callback()});
에 대한 인수$.when
의 반환 값이어야 합니다.$.ajax
또한 별도로 부를 필요도 없습니다. 말이 안 됩니다.당신은 다음과 같은 것을 원합니다.
for (i = 0; i < list.length; i++) {
requests.push($.ajax(...));
}
$.when.apply(undefined, requests).then(...)
그 이유는.apply
필요한 이유는$.when
여러 개의 인수를 사용할 수 있지만 인수 배열은 사용할 수 없습니다..apply
기본적으로 다음과 같이 확장됩니다.
$.when(requests[0], requests[1], ...)
이는 또한 요청이 임의의 순서로 완료될 수 있다고 가정합니다.
http://jsfiddle.net/MBZEu/4/ - 모든 성공 메시지가 표시된 후 '완료'가 콘솔에 기록됩니다.
여러 요청 및 응답을 처리하는 데 도움이 될 수 있는 쉬운 예를 공유합니다.
var arr = [
$.ajax({url:"test1.php"}),
$.ajax({url:"test2.php"}),
$.ajax({url:"test3.php"})
];
$.when.apply( undefined, arr ).then(function() {
var objects=arguments;
console.dir(objects);
});
언급URL : https://stackoverflow.com/questions/14352139/multiple-ajax-calls-from-array-and-handle-callback-when-completed
'bestsource' 카테고리의 다른 글
목록에서 가장 오래된/가장 어린 날짜/시간 개체 찾기 (0) | 2023.08.12 |
---|---|
파워셸에서 개체의 두 가지 속성을 기반으로 고유한 개체를 선택하려면 어떻게 해야 합니까? (0) | 2023.08.12 |
비 MAC OS에서 npm 설치 스팅 fevent 경고를 해결하는 방법은 무엇입니까? (0) | 2023.08.12 |
유닛 테스트 Spring @Around AOP (0) | 2023.08.12 |
PowerShell 스크립트에서 사용하는 .NET 버전은 무엇입니까? (0) | 2023.08.12 |