본문 바로가기

IT/JQuery

jquery .promise()


.promise( [type ] [, target ] )


컴퓨터가 자바스크립트 파일을 읽을 때 위에서부터 아래로 쭉 읽는다.

액션을 기다려 주지 않고.. 우선 아래로 쭉 읽음..


그래서.. ajax로 많은 양의 데이터를 불러올 때.. 데이터를 다 불러오지 않았음에도 불구하고

그 다음 줄을 실행해버린다.

데이터를 다 불러오고 그 다음에.. 실행시켜야 하는 액션이 있다면, primise를 이용해보자.


$( "div" ).each(function( i ) {

    $( this ).fadeIn().fadeOut( 1000 * ( i + 1 ) );

}); //이게 다 끝나면.. 아래 액션이 실행 됨.


$( "div" ).promise().done(function() {

    $( "p" ).append( " Finished! " );

});



※ 참고 사이트: https://api.jquery.com/promise/