一尘不染

如何在Node.js中进行此调用以同步请求?

node.js

我的nodejs应用程序中有一个名为get_source_at的函数。它以uri作为参数,其目的是从该uri返回源代码。我的问题是我不知道如何使函数同步调用请求,而不是给它提供回调函数。我
希望 控制流暂停几秒钟以加载uri。我该如何实现?

function get_source_at(uri){
    var source;
    request({ uri:uri}, function (error, response, body) {
        console.log(body);
    });
    return source;
}

另外,我已经阅读了有关“事件”以及如何“事件化”节点的知识,在编写代码时应该尊重这一点。我很乐意这样做,但是在继续执行应用程序的控制流程之前,我必须有一种方法可以确保从uri中获得源代码-
因此,如果不这样做,就可以使函数同步,那么该怎么办呢? ?


阅读 197

收藏
2020-07-07

共1个答案

一尘不染

您应该避免同步请求。如果您想要类似同步控制流的方法,可以使用async

async.waterfall([
    function(callback){
        data = get_source_at(uri);
        callback(null, data);
    },
    function(data,callback){
        process(data, callback);
    },
], function (err,result) {
    console.log(result)
});

process是答应要运行 get_source_at的回报。

2020-07-07