일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바 채팅 프로그램
- dom sax 차이점
- 빅분기 독학
- 원씽 책
- 빅분기 필기
- 자바 채팅
- dom sax 장단점
- The OneThing
- ajax 동기식
- 빅분기
- 빅데이터분석기사
- TCP Socket
- 간단한 채팅 프로그램
- 원씽 후기
- 노트패드 줄바꿈
- 책 원씽
- 빅데이터분석기사 독학
- async false
- Notepad++ 줄바꿈
- TCP 채팅
- 동기식 비동기식
- 자바스크립트 undefined
- 빅데이터분석기사 필기
- 원씽 독후감
- xml 파싱 방법
- ajax 비동기식
- Notepad 줄바꿈
- 원씽 내용
- async
- 노트패드++ 줄바꿈
Archives
- Today
- Total
SooBlending
[JavaScript] Ajax 동기식 처리 하는 법 본문
ajax는 기본적으로 비동기식으로 지원합니다.
하지만 때때로는 동기식으로 처리해야할 상황이 생기곤 합니다.
아래의 예시를 봅시다.
function test(){
$.ajax({
data: {name: 'MinSoo'},
url: 'nameCheck',
dataType: 'json',
success: function(data){
var result = data;
return result;
}
});
}
위의 코드와 같이 function 안에서 또 function을 콜하는 상황이 자주 발생합니다.
결과 값을 확인해보면 undefined 가 나올 것입니다.
이러한 이유는 비동기 방식에서 success 콜백 함수에서 리턴한 값을 받을 수 없다는 말입니다.
ajax 호출로 서버로 부터 응답을 받는 것이 다음 로직을 실행하기 전에 받을 수 있다고 확신할 수 없는 것입니다.
아래와 같이 비동기식으로 라인 1줄만 추가해주면 정상적으로 작동하게 됩니다.
function test(){
$.ajax({
data: {name: 'MinSoo'},
url: 'nameCheck',
dataType: 'json',
async: false,
success: function(data){
var result = data;
return result;
}
});
}
async : false 한 줄만 추가해주면 정상적으로 작동하시는 것을 확인 할 수 있습니다.
서버의 응답을 모두 기다렸다가 다음 로직을 처리해야하는 함수를 짠다면 동기식 처리 방법을 알아둘 필요가 있습니다.
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] JavaScript의 개념 및 Java와 차이점 (0) | 2017.11.29 |
---|
Comments