반응형
for 안에 ajax 호출 시, 비동기적으로 실행하는 $.ajax() 함수로 인해 데이터가 유실 된다.
문제) for 안에 여러개 호출 시, 마지막 값만 데이터가 처리됨.
for(var i=0;i<ApiArr.length;i++) {
$.ajax({
url: "/api/"+ApiArr[i],
type: "get"
}).done(function(data) {
...
}
}); // end of ajax
} // end of for
해결) 반복문 내의 클로저를 사용하여 각 호출의 고유한 범위를 갖도록 설정
클로저를 사용 하여 (function(index) { ... $.ajax{( .... }); })(i); 고유한 인덱스 값을 갖도록 하여 내부의 $.ajax 호출이 독립적으로 실행 됨.
for(var i=0;i<ApiArr.length;i++) {
(function(index) { // 클로저 사용 : 고유한 인덱스 값을 설정하여 ajax 독립적 실행
$.ajax({
url: "/api/"+ApiArr[i],
type: "get"
}).done(function(data) {
...
}
}); // end of ajax
})(i); // i 값 전달
} // end of for
반응형
'skill > HTML.Javscript.CSS' 카테고리의 다른 글
[Kotlin] 브라우져 뒤로가기 버튼 클릭 시, ERR_CACHE_MISS 약식을 다시 제출 하시겠습니까? (0) | 2023.03.30 |
---|---|
react nginx 404 오류 설정 (0) | 2023.03.16 |
[css] @media print 머릿글 바닥글 삭제 및 다음 페이지 여백 주기 (0) | 2021.12.09 |
[script] modal 열기, 닫기, 닫기 이벤트처리 및 해제 (0) | 2021.10.19 |
toast-chart column data 배열 받기 및 처리 (0) | 2021.07.26 |