node.js request.get()无法弄清楚如何返回响应

时间:2014-08-24 14:24:39

标签: javascript node.js

我在node.js中运行以下内容:

function makeGetFunction(url) {
 url = url + '?' + authstring;
    console.log("get " + url);
    request.get(url, function(e, r, data) {
        var json = JSON.parse(data);
        var resp = json.entities;
    });
}

我想让makeGetFunction()返回resp。我认为答案就在于使用回调,但由于我对javascript中的异步调用相当新,我对如何正确地将其拉出来感到磕磕绊绊。我还没有找到与我的问题相关的任何示例或帖子。请原谅新手问题。

1 个答案:

答案 0 :(得分:0)

由于该过程涉及异步调用,因此最好的选择是在makeGetFunction中遵循相同的模式,方法是添加一个回调参数:

function makeGetFunction(url, callback) {
 url = url + '?' + authstring;
    console.log("get " + url);
    request.get(url, function(e, r, data) {
        var json = JSON.parse(data);
        var resp = json.entities;
        callback(resp);
    });
}

使用makeGetFunction时,传递一个处理函数而不是检索返回值:

makeGetFunction('www.myurl.net/what', function(resp) {
    // do stuff with response
});