如何优雅的写ajax同步或异步的方法?

开发中的实际情况

function openPopup(oilinfoId, oilPrice, pickupDiscount, oilinfoName, oilinfoSpec) {
       
      queryOildepot();
      
      queryYsfs(oilinfoId, oilPrice);
      
      queryCompany();
    
 
      getWujiaWenJia(oilPrice, oilinfoId); 
}
当我在打开一个弹出框的时候,需要发起4次数据请求,在请求中我发现其中有一个请求时间偏长无法显示,于是我使用了jquery中的同步请求方法, async : false,果然,效果实现了。

使用axios替代jquery

逃离jquery,我问作者是否支持同步的ajax请求方法

  • 作者回复

    synchronous requests are really really a bad thing to do, why do you think you need those? There's probably a good way to do it asynchronously without blocking everything.(同步请求真的坏的事情,你为什么认为你需要那些?有可能是一个好的方式异步没有阻止一切。)

问题来了,如何优雅的写ajax同步或异步的方法?

阅读 2.3k
2 个回答

若你的需求是四个请求都完成后再显示弹窗 可以使用axios.all

async function openPopup() {
    await queryOildepot();
    await queryYsfs(oilinfoId, oilPrice);
    //...
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题