我的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中获得源代码- 因此,如果不这样做,就可以使函数同步,那么该怎么办呢? ?
您应该避免同步请求。如果您想要类似同步控制流的方法,可以使用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的回报。
process
get_source_at