2017-10-05 75 views
-2

我在调用另一个函数(内部函数)中的函数,并且我需要out函数的内部函数的结果。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-开始/控制流/什么 - 是 - 回调/ – 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); 
})