iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Node.js中Express框架使用axios同步请求(async+await)实现方法
  • 193
分享到

Node.js中Express框架使用axios同步请求(async+await)实现方法

Node.jsExpressaxios同步请求asyncawait 2023-05-15 08:05:53 193人浏览 泡泡鱼
摘要

axiOS一般是作为异步请求使用的,但是某种特殊情况下需要同步请求,如何实现呢? 首先定义一个方法syncAxios let axios = require('axios'); e

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实现了延迟加载刷新页面的效果,结合控制器的交互,最终实现了同步操作的效果。

--结束END--

本文标题: Node.js中Express框架使用axios同步请求(async+await)实现方法

本文链接: https://www.lsjlt.com/news/208603.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作