2017-10-05 39 views
-2

私は別の関数(内部関数)内の関数を呼び出していますが、出力関数に内部関数の結果が必要です。Node.js複数の関数呼び出し

例:

var value; 
database.query1(param1, param2, function(err, outerResults) { 
    if (outerResults == null) { 
     database.query2(params1, params2, function(err, innerResults) { 
      value = innerResults; 
     }); 
     console.info(value); // I am not able to get the value of this innerResults outside the function 
    } 
}); 
+0

https://docs.nodejitsu.com/articles/getting-開始/制御フロー/ what-are-callbacks / – Maxim

答えて

0

あなたが約束を使用することができ、次はあなたのコードに固有のものですが、あなたが使用することができますprimisefy

var value ; 

Promise.resolve() 
.then(
    x => 
    new Promise((resolve,reject)=>{ 
     database.query1(
     param1,param2 
     ,function(err,outerResults) { 
      if (outerResults === null) { 
      database.query2(
       params1,params2 
       ,function(err, innerResults) { 
       if(err){ 
        reject("Unable to resolve outer or inner query"); 
        return; 
       } 
       resolve(innerResults); 
      }); 
      }else{ 
      resolve(outerResults); 
      } 
     }); 
    }) 
) 
.then(result => { 
    console.log("got results:",results) 
}) 
.then(null,reject =>{ 
    console.error(reject); 
}) 
関連する問題