我希望在nodejs中封装一个模块用于返回http请求的数据,基本的结构是这样:
const http=require('http');
function getData(url){
http.get(url,function(res){
var body='';
res.on('data',function(str){
body+=str;
});
res.on('end',function(){
var result=JSON.parse(body);
//将result返回到getData外面
})
});
}
module.exports=getData;
最后可以通过调用getData函数返回数据。
所以问题是:
1.如果不借助promise和async function的话要怎么实现呢?能实现吗?
2.如果我向下面一样直接返回,那返回值到底去哪里了?能取到吗?
res.on('end',function(){
var result=JSON.parse(body);
//将result返回到getData外面
return result;
})
1.返回数据受
res Event
的限制,是一个异步操作。因此不用promise
和async await
的话是无法实现的。2.这个
return
是无法直接获取的。退一步,即使获取了也还是在http.get
的回调函数里面,无法实现题目要求。