본문 바로가기
js

비동기처리

by 멋진 개구리 2021. 4. 23.
반응형

동기적(Synchronous)

  • 작업을 하는동안 다른작업을 할수 없는것!
    ₩₩₩ javascript

      //순서적으로 실행한다
      //연산량이 많은 작업!
        function work(){
          const start = Date.now();
          for(let i = 0; i <1000000000; i++){
    
          }
          const end = Date().now();
          console.log(end -start +'ms'); //523ms
    
      }
      work();
      cosole.log('다음작업');
    //523ms
    //다음작업
₩₩₩

비동기적(Asynchronous)

  • 작업을 하면서 다른 작업을 할 수 있는것!

  • 대체적으로 Ajax가 있다

    ₩₩₩ javascript

      //연산량이 많은 작업!
    
        function work(){
             setTimeout(()=> {
              const start = Date.now();
                 for(let i = 0; i <1000000000; i++){
    
                 }//end for
                 const end = Date().now();
              console.log(end -start +'ms'); //523ms
          },0) //end setTimeout
    }//end work
    console.log('작업시작');
    work();
    cosole.log('다음작업');

    //작업시작
    //다음작업
    //526ms

₩₩₩

callback 함수

work(); 함수가 끝나고 또 실행하고 싶다면

₩₩₩    javascript

    //연산량이 많은 작업!

      function work(callback){
           setTimeout(()=> {
            const start = Date.now();
               for(let i = 0; i <1000000000; i++){

               }//end for
               const end = Date().now();
            console.log(end -start +'ms'); 
            callback(end-start)
        },0) //end setTimeout


    }//end work
    console.log('작업시작');
    work((ms) => { //함수 내부에소 ms를 받아옴
        console.log('작업이 끝났어요!');
        console.log(ms+'ms걸렸다고해요');
    });
    console.log('다음작업');

    //작업시작
    //다음작업
    //526ms
    //작업이 끝났어요!
    //526ms걸렸다고해요.

₩₩₩

사용

  • Ajax Web API 요청
  • 파일읽기
  • 암호화/ 복호화
  • 작업예약
반응형

'js' 카테고리의 다른 글

숫자에 콤마 표기 in javascript  (0) 2023.05.10
promise  (0) 2021.04.23
Truthy and Falsy  (0) 2021.04.23
class - food class 만들기  (0) 2021.04.22
async - await  (0) 2021.04.08

댓글