leebidam
90
2019-06-07 16:01:47
2
279

자바스크립트 async.series 질문입니다



현재

function A(params) {

  async.series([

    function B() {

    },

    function C() {

    },

    function D() {

    }

  ]);

  function(err, results){

   });

   return results;

}

exports.A = A


위와 같은 형식의 function을 호출하여 사용하려고 합니다.

다른 파일에서 해당 파일을 require 하여

A('params') 로 params 값을 넘겨주고 return 값을 받고싶습니다.

A('params').then 방식도 return 값을 제대로 받지 못하고

let A = A.('params')

console.log('A = ' + A)

이런 방식을 사용해도 return 값을 받기 이전에 먼저 console이 찍히며 undefined 가 나타납니다.

어떤식으로 해결해야될지 도움좀 부탁드리겠습니다.

0
  • 답변 2

  • 쿵따리쿵쿵따
    270
    2019-06-07 16:50:58 작성 2019-06-07 16:54:19 수정됨

    async.series가 promise형태로 리턴 할 때는 2번쨰 인자에 callback이 없을때 입니다. 즉 프로미스로 받고싶다면

    function A(params) {

      return async.series([

        function B() {

        },

        function C() {

        },

        function D() {

        }

      ]);

       return results;

    }

    이렇게 콜백함수를 지워줘야 하며 이게아니라면 callback방법으로 해야합니다.


    function A(params, callback) {

      async.series([

        function B() {

        },

        function C() {

        },

        function D() {

        }

      ],

      function(err, results){

          return callback(err, results);

       });

    }

    받는 쪽에선

    A('params', (err,results) => {

      result값 사용 로직

    });


    이렇게 사용하면될겁니다.


  • leebidam
    90
    2019-06-07 17:42:47

    두번째 방법으로 해결 했습니다.

    감사합니다!!

  • 로그인을 하시면 답변 을 등록할 수 있습니다.