ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Javascript - 비동기 처리
    Javascript 2020. 9. 6. 16:09

    동기적 / 비동기적 처리

     

    동기적 처리

    function work(){
    	const start = Date.now(); // 현재 날짜를 숫자형태로 표시
        for (let i = 0; i < 1000000000; i++){
    	
    	}
        const end = Date.now();
        console.log(end - start + 'ms'); // 얼마나 시간 걸렸는지
    }
    
    work();
    
    console.log('다음 작업'); // work() 가 다 끝나고 실행됨
    

     

    비동기적 처리

    function work(){
    	setTimeout(() => {
        	const start = Date.now(); // 현재 날짜를 숫자형태로 표시
            for (let i = 0; i < 1000000000; i++){
    
            }
            const end = Date.now();
            console.log(end - start + 'ms'); // 얼마나 시간 걸렸는지	
        }, 0)
    }
    
    console.log('작업 시작');
    
    work();
    
    console.log('다음 작업');
    

     

    setTimeout() 사용하면 비동기적으로 작업 수행할 수 있다.

     

    ※ 0 으로 초기값 설정해도 4ms 이후에 실행된다.(시스템에서의 최소 조건 기본값이기 때문)

     

    만약 이 상태에서 work() 함수 끝난 다음 다른 작업 수행하고 싶다면,

    callback 함수 사용

    function work(callback){
    	setTimeout(() => {
        	const start = Date.now();
            for (let i = 0; i < 1000000000; i++){
    
            }
            const end = Date.now();
            console.log(end - start + 'ms');
            callback(end - start);
        }, 0)
    }
    
    console.log('작업 시작');
    
    work((ms) => {
    	console,log('작업이 다 끝났어요!');
        console,log(ms + 'ms 걸렸다고 해요');
    });
    
    console.log('다음 작업');
    

     

    비동기 작업 수행

    Ajax Web API 요청 - 요청이후 서버에서 요청할 때까지 기다려야하기 때문에

    파일 읽기

    암호화 / 복호화

    작업 예약

    -- 대부분 시간이 조금 걸리는 작업들에 대해서 비동기 작업을 사용한다.

    .. 등의 상황에서 사용한다.

    'Javascript' 카테고리의 다른 글

    Javascript - async / await  (0) 2020.09.06
    Javascript - Promise  (0) 2020.09.06
    Javascript - Hoisting  (0) 2020.09.05
    Javascript - scope  (0) 2020.09.05
    Javascript - 함수 파라미터에서의 rest, 인자로서 spread  (0) 2020.09.05
Designed by Tistory.