데이터 통신 방식 - 동기 vs 비동기

동기

비동기

참고 : https://joshua1988.github.io/web-development/javascript/js-async-await/

ASYNC

  • asynchronous communication 비동기 통신

예시

$.A = function(a,b){
    var param = {};
    param.sth = a;
    $.ajax({
       url: ~
       ,type: 'post'
       ,data: param
       (((,asynce: false))) (나중에 추가할 부분)
       ...
       ,success: function(){}
       ...
    });
}

이렇게 A 함수를 정의해놓고 B 함수도 만듦

$.B = function(){
   param ~
   $.ajax({
      ~
      ,success: function(data){
         ~
         $.A(a,b);
         C구문

==> 의도한 것
B 함수를 호출했을 때
B가 처리되다가
A 함수를 호출하고
A 처리가 끝난 후 C구문을 처리하고 싶었음.

==> but 결과는
하지만 결과는 그렇지 않음.
B 다 끝나고 A 끝나는 것처럼 보임.
비동기 통신이라 A가 호출되고 A에서 ajax 처리되는 동안 B 함수도 처리되는 거임

==> 해결방법은
그래서 A 함수의 ajax에 속성으로
async : false
를 주면 A함수의 ajax이 다 끝나고 B함수의 C구문이 처리됨. 순서대로.

좋은 웹페이지 즐겨찾기