我正在Nodejs中使用Express以便进行GET调用。作为响应,我得到了我需要的值,但是当我从函数返回值到主函数时,我得到的是不确定的。
function getInfo()
{
var oauth = getoAuth();
request.get({
url:'myurl',
oauth:oauth,
qs:null,
json:true
},
function (e, r, data) {
body.data = data;
body.emit('update');
});
body.on('update', function () {
console.log(body.data.issues[0].key);
return (body.data.issues[0].key);
});
}
这是我需要的钥匙。当我在控制台中打印它时,我得到了正确的值,但是它不返回任何内容,因为它是一个异步调用。如何返回值?我可以以某种方式等待快递的价值吗?我在stackoverflow上看到有人使用了此body.on('update'...解决方案,但对我而言不起作用。它仍然不保存任何变量。
TESTING: undefined
THEKEY1
var myid = geInfo();
答案 0 :(得分:1)
尝试这种方式:
function getInfo()
{
var oauth = getoAuth();
request.get({ url:'myurl', oauth:oauth, qs:null, json:true},
function (error, response, body) {
if(!error && response && response.statusCode==200){
console.log(body);
return body.data.issues[0].key;
}else{
return null;
}
});
}