Node.js에서 async.waterfall 사용해 보기

Created:

Node.js에서 함수를 순차적으로 수행하기 위해 async.waterfall을 사용해 보았다.

예제

const async = require("async");

async.waterfall(
  [
    callback => {
      // 첫번째 함수 수행
      setTimeout(() => {
        console.log("task 1");
        callback(null, "task 2");
      }, 1000);
    },
    (arg1, callback) => {
      // 두번째 함수 수행
      setTimeout(() => {
        console.log(arg1);
        callback(null, "done");
      }, 500);
    }
  ],
  (err, result) => {
    // 결과 함수 수행
    if (err) {
      console.error(err);
      return;
    }
    console.log(result);
  }
);

결과

task 1
task 2
done

위 예제에서 callback의 첫번째 인자로 null을 넘겨 주고 있는데 만약 함수 수행중 오류가 발생하면 이 첫번째 인자에 오류값을 넘겨주면 된다. 그렇게되면 다음 task를 수행하지 않고 바로 결과 함수로 넘어간다.

참조

https://www.npmjs.com/package/async-waterfall https://github.com/ryeon9445/javascript-test/blob/master/README.md#async-waterfall

Comments