Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js多个函数调用_Javascript_Node.js - Fatal编程技术网

Javascript Node.js多个函数调用

Javascript Node.js多个函数调用,javascript,node.js,Javascript,Node.js,我在调用另一个函数(内部函数)中的函数,我需要将内部函数的结果传递给out函数 例如: var value; database.query1(param1, param2, function(err, outerResults) { if (outerResults == null) { database.query2(params1, params2, function(err, innerResults) { value = innerResu

我在调用另一个函数(内部函数)中的函数,我需要将内部函数的结果传递给out函数

例如:

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
    }
});

您可以使用承诺,以下是特定于您的代码的,但您可以使用

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);
})