업무일지

[ajax] 동기처리로 ajax 결과 처리하기

_leezoee_ 2022. 12. 13. 23:09

프로젝트하면서 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