sitelink1 https://youtu.be/PNtsOqW4wnE 
sitelink2  
sitelink3  
extra_vars4  
extra_vars5  
extra_vars6  

javascript의 비동기 동작에서 일련의 과정을 트랜잭션으로 묶어서 처리하기 위해 콜백을 연속해서 사용하게 되는데 다음과 같이 설계할 수 있다

 

function task1(callback) {

    console.log('Task1 시작');

    setTimeout(function () {

        console.log('Task1 끝');

        callback();

    }, 300);

}

 

function task2(callback) {

    console.log('Task2 시작');

    setTimeout(function () {

        console.log('Task2 끝');

        callback();

    }, 200);

}

 

task1(function () {

    task2(function () {});

});

 

그리고 이러한 콜백이 심화하게 되면 콜백 지옥을 만나게 된다

 

task1(a, b, function (err, result1) {

    task2(c, function (err, result2) {

        task3(d, e, f, function (result3) {

            task4(h, i, function (result4) {

                // 비동기 동작

            });

            task4

        }); // task3

    }); // task2

}); // task1

 

이를 해결하기 위해 Async 와 Promise를 이용한다

 

Async

비동기 동작의 흐름을 제어하기 위한 외부 모듈

 

설치

  > npm install async

 

기능

  행위 순서 제어

    series : 순차 실행

series(tasks, [callback])

  async.series(

    [

      //태스크1

      function(callback) {

        //태스트 성공

        callback(null, result);

 

        //테스트 실패

        callback(err, null); //다음 태스크는 실행하지 않는다

      },

      태스크2,

      태스크3

   ],

 

   function(err, results) {

    if ( err ) {

      // 태스크 진행 중 에러 : callback(err, null)

      return;

    }

    // 마무리 동작

   }

);

 

    seriesEach

    parallels

    waterfall

  콜렉션(배열, 객체)

    each

    forEachOf

    map

    filter

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
56 node js + 아두이노 연동 제어 실험 file 황제낙엽 2017.01.02 3147
55 여러 개의 데이터 베이스 연결을 동시에 관리하는 PoolCluster 황제낙엽 2021.01.16 2395
54 빠르게 훝어 보는 node.js - #4 웹개발 프레임웍 Express 1/2 file 황제낙엽 2016.08.03 1055
53 Node.js 에서 Bulk INSERT 를 하는 방법 (multi insert) 황제낙엽 2021.02.02 994
52 Node.js란? 황제낙엽 2012.11.15 803
51 [connection과 pool-03] mysql.createPool 과 connection.query 황제낙엽 2021.01.27 625
50 RESTful API 황제낙엽 2020.07.13 572
49 빠르게 훝어 보는 node.js - #3 Event,Module,NPM file 황제낙엽 2016.08.03 409
48 express-sse 모듈과 EventEmitter 황제낙엽 2020.09.20 377
47 mysql, mysql2 모듈 버전 비교 황제낙엽 2021.01.31 342
46 express 4.16부터는 body-parser를 내장한다 황제낙엽 2020.12.06 336
45 빠르게 훝어보는 node.js - #1node.js 소개 및 내부구조 file 황제낙엽 2016.08.03 305
44 urlencode : request params의 한글 처리 황제낙엽 2020.12.06 205
43 [Deprecated] request / request 황제낙엽 2020.08.26 202
42 Node.js , NPM 관련 명령어 정리 황제낙엽 2020.09.10 198
41 mysql basic (mysql 설치, 접속, 조회) 황제낙엽 2021.01.12 186
40 node js 학습 링크 목록 황제낙엽 2017.01.05 171
39 빠르게 훝어 보는 node.js - #5 웹개발 프레임웍 Express 2/2 file 황제낙엽 2016.08.03 166
38 [connection과 pool-04] connection pool 에서의 Transaction을 이용한 commit 과 rollback 황제낙엽 2021.01.27 165
37 google oauth 인증 (구글 로그인) file 황제낙엽 2020.11.12 158