鍍金池/ 問答/HTML/ 如何優(yōu)雅的寫ajax同步或異步的方法?

如何優(yōu)雅的寫ajax同步或異步的方法?

開發(fā)中的實(shí)際情況

function openPopup(oilinfoId, oilPrice, pickupDiscount, oilinfoName, oilinfoSpec) {
       
      queryOildepot();
      
      queryYsfs(oilinfoId, oilPrice);
      
      queryCompany();
    
 
      getWujiaWenJia(oilPrice, oilinfoId); 
}
當(dāng)我在打開一個(gè)彈出框的時(shí)候,需要發(fā)起4次數(shù)據(jù)請(qǐng)求,在請(qǐng)求中我發(fā)現(xiàn)其中有一個(gè)請(qǐng)求時(shí)間偏長無法顯示,于是我使用了jquery中的同步請(qǐng)求方法, async : false,果然,效果實(shí)現(xiàn)了。

使用axios替代jquery

逃離jquery,我問作者是否支持同步的ajax請(qǐng)求方法

  • 作者回復(fù)

    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.(同步請(qǐng)求真的壞的事情,你為什么認(rèn)為你需要那些?有可能是一個(gè)好的方式異步?jīng)]有阻止一切。)

問題來了,如何優(yōu)雅的寫ajax同步或異步的方法?

回答
編輯回答
若相惜

若你的需求是四個(gè)請(qǐng)求都完成后再顯示彈窗 可以使用axios.all

2017年5月2日 19:48
編輯回答
蝶戀花
async function openPopup() {
    await queryOildepot();
    await queryYsfs(oilinfoId, oilPrice);
    //...
}
2017年1月22日 16:53