背景
Vue 2 + ArcGIS JS
載入圖層使用 FeatureLayer.queryFeatures(query)
對服務端執行地理資料查詢請求。
該請求為 fetch 型別。
復現
Bug:剛開啟專題A,未等載入完,點選快速切換到共用同一個地圖的新專題B,地圖卻載入專題A的資料圖層。
原因:由於地圖還是用的同一個物件,且該函式FeatureLayer.queryFeatures(query)
非同步執行,當非同步等待完成後,會繼續執行原有的 then()
內容
解決
方法 1. Vue 宣告變數標記元件是否被銷燬
方法 2. 使用 AbortController 終止請求
參考:
- FeatureLayer.queryFeatures(query, options)
- MDN AbortController
- javascript.info - Fetch:中止(Abort)