我已经使用从客户端(使用ajax)到服务器端(Nodejs)的同步(http请求)调用来转换程序。在那之后,该程序所需的时间比它花了4倍。
我得到了#undefined'当我使用异步调用时返回函数。 所以,我尝试了两种同步调用方式,两者都需要很长时间。
是否有很好的方法可以让身体恢复'在下面的函数中,使用异步调用? 或者,使用FAST同步通话?
function getBody(input) {
//sync call-TRY.1
var body_return;
request(option, function(error, response, body) {
if (!error && response.statusCode === 200) {
//do something with body;
body_return = dosomething(body);
}
});
//sync call-TRY.2
var body = sync_request('POST', '(uri)', options).getBody('utf8');
var body_return = dosomething(body);
//async call can't return the body in time, so this function returns undefined..
return body_return;
}
答案 0 :(得分:0)
由于node.js的异步性,您的函数返回undefined
。
当你真正得到答复时,你应该在body_return
内返回callback of request
。
function getBody(input) {
//this is async call
var body_return;
request(option, function(error, response, body) {
if (!error && response.statusCode === 200) {
//do something with body;
body_return = dosomething(body);
//return when you get the response
return body_return;
}
});
}