nodejs中request.post如何改为同步执行?
send.js模块代码:
var request=require('request');
var sendUrl=function(req,url){
console.log('请求参数:');
console.log(req.body);
var opts={
url:url,
form:req.body,
headers: {
'Cookie': 'JSESSIONID='+req.session.resPonseId
}
};
var results={status:false,message:'调用接口失败'};
console.log(opts.url);
request.post(opts,function(err,response,body){
console.log('返回结果:');
if(!err && response.statusCode == 200){
if(body!=='null'){
results=JSON.parse(body);
}
}
})
return results;
console.log(results)
}
module.exports=sendUrl;
其它模块中调用 :
在其它模块处调用:
var results=sendUrl(url);
一直会显示:{status:false,message:’调用接口失败’}
如何把request.post改成同步的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
request.post 是不能改成同步的。
但是你可以借助异步流程控制库来完成你的需求。
比如我用的when.js
//访问a网站
用Promise。下面使用了ES7的async-await。
天生设计就是异步的,没法同步,除非你修改nodejs
为什么要同步呢? 我实在想象不到什么样的需求下,需要同步请求。。
promise 也好, 直接调用 callback 也好,不就行了吗?