• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 프로미스

프로미스

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #97806

    최문길
    참가자
    console.log(1)
    console.log(2)
            var 프로미스 = new Promise(function (resolve, reject) {
         1번      for(let i = 0; i< 1000000; i++){
                 console.log(i)
                }
                resolve()
    ---------------------
    2번  setTimeout(()=>{ resolve() } , 2000 )
            });
            프로미스
                .then(function (구멍) {
               
                   
                    console.log('성공했어요')
    
                })
                .catch(function () {
             
                    console.log('실패했어요');
                })
    
    
                console.log(3)
                console.log(4)
     
    
    ----------------
    프로미스 안의 1번인 경우
    
    콘솔에 찍히는 것이
    1->2-> 프로미스 안 for문의 console(i) ->3->4 -> 성공했어요 
    
    프로미스 안의 2번인 경우
    
    콘솔에 찍히는 것이
    1->2-> 3->4-> 성공했어요
    
    이렇게 나옵니다.
    당연히 2번에서는 setTimeout때문에 브라우저에서 치워버리니까 3번과 4번이 먼저찍히는 것이라고 이해 했고
    
    Q. 센세에게 배운 인간의 언어 프로미스의 콜백함수는 동기적 처리가 맞고 
       then이나 catch안의 것은 브라우저가 잠깐 제쳐두고(비동기)
        순서대로 콘솔 3,4 (동기적)처리 한 후 실행하는 
        어떻게 보면 setTimeout,ajax와 같이 잠깐 제쳐두고 처리하는 비동기적 처리라고 
    생각하면 될까요?
    
    ---------------------------
    
    
    
    
    
    #97834

    codingapple
    키 마스터
    넴 new Promise 콜백안에있는건 동기적실행이고
    .then안의 것들은 잠깐 제껴뒀다가 실행하는듯요
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠