我的 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;
}
另外,我已经阅读了“事件”以及 Node 是如何“事件”的,我在编写代码时应该尊重这一点。我很高兴这样做,但我必须有办法确保在继续我的应用程序的控制流之前我有来自 uri 的源代码 - 所以如果这不是通过使函数同步,怎么能做到?
最佳答案
您可以使用 deasync :
function get_source_at(uri){
var source;
request({ uri:uri}, function (error, response, body) {
source = body;
console.log(body);
});
while(source === undefined) {
require('deasync').runLoopOnce();
}
return source;
}
关于javascript - 如何在 nodejs 中同步调用请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884418/