vue在组件销毁的时候将异步请求撤销

背景

Vue 2 + ArcGIS JS
加载图层使用 FeatureLayer.queryFeatures(query) 对服务端执行地理数据查询请求。
该请求为 fetch 类型。

复现

Bug:刚打开专题A,未等加载完,点击快速切换到共用同一个地图的新专题B,地图却加载专题A的数据图层。

原因:由于地图还是用的同一个对象,且该函数FeatureLayer.queryFeatures(query)异步执行,当异步等待完成后,会继续执行原有的 then() 内容

解决

方法 1. Vue 声明变量标记组件是否被销毁

image

方法 2. 使用 AbortController 终止请求

image

参考:

posted @ 2024-04-01 18:08  zheyi420  阅读(126)  评论(0编辑  收藏  举报