看很多人都誤會成了一次性發送10次,補充為這樣:假如用戶可以連續點擊按鈕,每次發1次請求,每次獲得響應結果后會生成一個li,因為網絡狀態的影響后發出的請求可能先響應,假如點了10次,如何保證10個li的順序與請求的順序一致!使用Promise.all的答案肯定都是不對的,因為你無法預測用戶點擊按鈕的時機,用戶可能一兩秒完成10次點擊,但也可能在10秒內完成......肯定不能說我等用戶點完10次再使用Promise.all請求,何況實際情況不一定是10次。這是我一次面試唯一沒答的很好的題目,所以印象比較深刻,我開始也答的Promise.all,被直接否定,后面我提到在請求報文中攜帶相關參數,響應中返回,本地做mapping關系來實現,但面試官依然不是很滿意。后面經我詢問后面試官只提到了思路,說了幾個詞記得不是很清楚,后續查資料猜測貌似是在請求響應包含一個Request-Id字段,并使用UUID作為該值......沒實踐過不敢確定!
多次請求因為網絡無法保證響應順序,如何保證獲得所有響應結果后生成的列表結果的順序與請求順序一致?
DIEA
2019-05-22 15:21:08