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