2017-01-23 130 views
0

当我从服务器获得响应时,如何获取此值?如何在node.js中获取请求后返回值?

终端在运行时不会输出任何信息。

console.log(a); 
 
function findMaxID() { 
 
    var a = needle.get(URL, function(err, res){ 
 
     if (err) throw err; 
 
     return 222; 
 
    }); 
 
    return a; 
 
}

+0

使用承诺? –

+0

@BelminBedak你能告诉我一个简单的代码吗?我使用promisses很多次,但在这里,在这个例子中我的承诺不起作用 –

+0

http://stackoverflow.com/questions/22519784/how-do-i-convert-an-existing-callback-api-to优惠可能会有所帮助。 – ste2425

回答

0

基本上,你不能真正return在单向函数将该值返回值。你能做的就是给你的findMaxID()功能的回调参数当数据被取出被称为:

function findMaxID(callback) { 
    needle.get(URL, function(err, res){ 
     if (err) throw err; 
     callback(res); 
    }); 
} 

然后调用它像这样:

findMaxID(function(id) { 
    console.log('Max ID is : ', id); 
} 

您也可以返回承诺

function findMaxID() { 
    return new Promise(function (resolve, reject) { 
     needle.get(URL, function(err, res){ 
      if (err) reject(err); 
      resolve(res); 
     }); 
    }); 
} 

,并调用它像这样:

findMaxID().then(function(id) { 
    console.log('Max ID is ', id); 
})