프로젝트하면서 for문으로 배열을 순차적으로 돌면서 해당 데이터를 가져오고, 다시 그 결과들을 순차적으로 담아줘야하는 일이 있었는데 ajax가 호출되면 비동기로 처리가 돼서 최종 데이터 배열 순서가 뒤죽박죽 되는 일이 발생했다.
ajax 동기에 대한 기술 구글링해본 결과 ajax 호출에서 async 파라미터를 true false 로 설정해서 넘기면 된다는 아주 간단한 방법을 서치했다.
let dataArr = [];
for(let i=0; i<arr.length; i++){
let item = arr[i];
let set = {
"url" : "호출할 api url",
"method" : "GET",
"timeout" : 0,
"async" : false, //이거 설정안해주면 기본으로 true이고, true면 비동기! false 해주면 동기!
};
$.ajax(set).done(function (response){
console.log(response);
dataArr.push(response);
}).fail(function (response) {
console.log(response);
});
}
저렇게 해두니까 dataArr에 담긴 데이터가 arr 순서에 맞게 들어가있었다. 성공!
'업무일지' 카테고리의 다른 글
[next.js] 배포파일만들기 (0) | 2022.07.28 |
---|---|
[.bat]관리자권한으로 실행하는 배치파일 만들기 (0) | 2022.02.17 |
[DB dump]현장DB import (0) | 2022.01.18 |