Javascript node.js request.get()可以';我不知道如何回复

Javascript node.js request.get()可以';我不知道如何回复,javascript,node.js,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; }); } 我想让makeGetF

我正在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中的异步调用还相当陌生,因此我在如何正确地实现回调方面遇到了困难。我还没有找到任何与我的问题相关的例子或帖子。请原谅这个新手问题。

由于该过程涉及异步调用,最好的选择是遵循
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
});

返回resp时,它似乎为空。我不确定,但也许当它返回时,请求还没有返回?请阅读。谢谢——就是这样!现在,我想我对异步和回调有了更好的理解……很高兴知道您现在理解了它。您可能还想考虑将更多的参数传递给回调函数,如适用于错误对象(传统上,作为第一个参数)。