如何在node.js中的get-request之后返​​回值?

时间:2017-01-23 12:51:14

标签: javascript node.js needle.js

当我从服务器收到回复时,如何获得此值?

运行时终端没有输出任何信息。



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




1 个答案:

答案 0 :(得分:2)

基本上,在函数返回值的方式中,你不能真正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);
})

修改

如果您使用的是async函数,则可以这样:

var id = await findMaxId();
console.log(id); // logs the ID