Node.js中Express框架使用axios同步请求(async+await)实现方法
更新时间:2023年04月11日 09:11:53 作者:rrbay
这篇文章主要介绍了Node.js中Express框架使用axios同步请求(async+await)实现方法,结合实例形式分析了express框架使用异步交互axios模块实现同步请求的相关操作技巧与注意事项,需要的朋友可以参考下
axios一般是作为异步请求使用的,但是某种特殊情况下需要同步请求,如何实现呢?
首先定义一个方法syncAxios
let axios = require('axios'); exports.syncAxios = function (obj = {}) { let url = "http://www.rrbay.com/api/"; return new Promise((resolve, reject) => { axios(url, { method: 'POST', timeout: 5000, params: { sProcName: obj.sProcName, idNo: obj.id, userName: obj.qq, overTime: obj.endTime } }).then((res) => { resolve(res.data); }).catch((error) => { reject(error) }) }) };
然后在controllers 调用
exports.check = function (req, res) { //定义async方法体 XXXMode.findById(id).populate('author').exec(async function (err, result) { let dataCode = false; if(result.status ==0){ //同步调用 await baseapi.syncAxios({ sProcName: 'Update', id: '000000-1111-2222-3333-9999999', qq: '391502069',//result.author.name, endTime: '2022/12/31 11:39:05'//result.EndTime }).then((data) => { console.log(data, 'res'); }).catch((err) => { console.log(err && err.stack); }); } result.save(function (err, onewxtob) { if (req.xhr) { return res.json({ status: !err }) } }); }); };
view中使用模板引擎jade,需要在请求check
后,延迟刷新页面显示请求结果
setTimeout(function () { $(location).attr('href',window.location.href) }, 1000)
这里的setTimeout实现了延迟加载刷新页面的效果,结合控制器的交互,最终实现了同步操作的效果。
相关文章
node.js中的http.request.end方法使用说明
这篇文章主要介绍了node.js中的http.request.end方法使用说明,本文介绍了http.request.end的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下2014-12-12npm安装淘宝镜像报错问题解决(npm install -g cnpm)
本文主要介绍了npm安装淘宝镜像报错问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-01-01使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
这篇文章主要介绍了使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目的教程,自动化构建工具Grunt具有编译压缩单元测试等功能,十分强大,需要的朋友可以参考下2016-02-02Node.js 中exports 和 module.exports 的区别
这篇文章主要介绍了Node.js 中exports 和 module.exports 的区别的相关资料,需要的朋友可以参考下2017-03-03
最新评论