jQuery로 배열이나, Collection 정보를 순차적으로 Ajax 비동기를 호출해서 처리해야 하는 상황에서
(예시 : 첫번째 Ajax 비동기 호출이 완료 될 때까지, 기다렸다가 두번째 Ajax 비동기 호출을 해야하는 경우 )
Ajax 비동기 호출을 기다리기 위해서 async, await, promise를 사용하여 문제 해결을 진행했다.
단, 소스 코드를 실행 전에 사용하고 있는 브라우저가 async, await, promise 를 지원하는지 확인이 필요하다.
크롬도 마찬가지로 버전이 낮을 경우, 해당 소스코드를 문법 오류로 인식한다.
- 소스는 참조용입니다.
eachAjaxCall();
async function eachAjaxCall(){
var array = [1,2,3];
for ( const element of array ){
try{
await promiseAjaxCall(element);
console.log('element done');
}catch(e){
console.log('called by reject');
}
}
console.log('process done');
}
async function promiseAjaxCall(element){
return new Promise(function(resolve,reject){
$.ajax({
url: 'URL 주소 작성',
type: 'POST',
data : element,
}).done(function(data) {
/**
*
*/
console.log('ajax done' + data);
console.log(element);
resolve();
}).fail(function() {
reject();
});
});
}
'프로그래밍 > jQuery' 카테고리의 다른 글
jQuery로 Value getter(),setter() 만들기 (0) | 2019.03.16 |
---|---|
[jQuery] scrollTop 을 이용한 textarea focus (0) | 2012.08.22 |
[jQuery] each() (0) | 2012.05.10 |
[jQuery] attr() (0) | 2012.04.25 |
[jQuery] jQuery.each() vs .each() (1) | 2012.04.24 |