天天看點

Promise + Async&Await + Array.reduce + 函數遞歸 解決網絡/接口請求的依次/排隊不間斷間隔通路

試想在一個需要頻繁更新資料的場景(例如:監控、圖表類),正常方法是設定一個間隔 N 秒的定時器 <code>setInterval</code>;但是這種方式存在一個問題,目前一個請求時間過長時(超過了間隔時間),後一個請求的接口響應會先于前一個請求,也就是說,将導緻舊的資料渲染會覆寫新的資料渲染。

利用 <code>Array.reduce</code> 的疊代性,注冊異步(Async)的匿名函數,在函數内部将網絡請求封裝成 Promise 執行個體,在整個疊代周期中等待(Await)前一個請求完成以後再請求後一個請求,完成一個請求周期以後遞歸調用自己,開啟新的一輪一模一樣的請求周期,模拟不間斷的依次網絡請求。

結果列印:

版權聲明

本部落格所有的原創文章,作者皆保留版權。轉載必須包含本聲明,保持本文完整,并以超連結形式注明作者後除和本文原始位址:https://blog.mazey.net/2317.html

(完)

GitHub:mazeyqian

Blog:blog.mazey.net

繼續閱讀