【问题标题】:How can I return value after get-request in node.js? [duplicate]如何在 node.js 中获取请求后返回值? [复制]
【发布时间】:2017-06-07 23:49:13
【问题描述】:

当我得到服务器的响应时,如何获取这个值?

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

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

【问题讨论】:

  • @BelminBedak 你能给我看一个简单的代码吗?我多次使用承诺,但在这里,在这个例子中我的承诺不起作用
  • stackoverflow.com/questions/22519784/… 可能会有所帮助。

标签: javascript node.js needle.js


【解决方案1】:

基本上,你不能在函数返回值的方式中真正return 这个值。你可以做的是给你的 findMaxID() 函数一个 callback 参数,以便在获取数据时调用:

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

然后这样称呼它:

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

你也可以返回一个promise

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多