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 3038
55 여러 개의 데이터 베이스 연결을 동시에 관리하는 PoolCluster 황제낙엽 2021.01.16 2207
54 빠르게 훝어 보는 node.js - #4 웹개발 프레임웍 Express 1/2 file 황제낙엽 2016.08.03 1012
53 Node.js란? 황제낙엽 2012.11.15 765
52 Node.js 에서 Bulk INSERT 를 하는 방법 (multi insert) 황제낙엽 2021.02.02 666
51 RESTful API 황제낙엽 2020.07.13 528
50 [connection과 pool-03] mysql.createPool 과 connection.query 황제낙엽 2021.01.27 384
49 mysql, mysql2 모듈 버전 비교 황제낙엽 2021.01.31 269
48 express 4.16부터는 body-parser를 내장한다 황제낙엽 2020.12.06 268
47 빠르게 훝어보는 node.js - #1node.js 소개 및 내부구조 file 황제낙엽 2016.08.03 267
46 express-sse 모듈과 EventEmitter 황제낙엽 2020.09.20 265
45 Node.js , NPM 관련 명령어 정리 황제낙엽 2020.09.10 141
44 [Deprecated] request / request 황제낙엽 2020.08.26 123
43 빠르게 훝어 보는 node.js - #3 Event,Module,NPM file 황제낙엽 2016.08.03 122
42 node js 학습 링크 목록 황제낙엽 2017.01.05 118
41 빠르게 훝어 보는 node.js - #5 웹개발 프레임웍 Express 2/2 file 황제낙엽 2016.08.03 105
40 nodemon 설치 및 활용 file 황제낙엽 2020.08.16 102
39 urlencode : request params의 한글 처리 황제낙엽 2020.12.06 99
38 google oauth 인증 (구글 로그인) file 황제낙엽 2020.11.12 84
37 빠르게 훝어 보는 node.js - #6 MongoDB 연동 (mongo-native) file 황제낙엽 2016.08.03 82