我目前有一个坐标列表,我用它来获取附近的徒步旅行。假设我将列表状态更新为新坐标,但先前坐标的提取请求未完成 - 如何取消对先前坐标发出的所有提取请求,而仅根据新坐标调用新的提取请求?
我尝试实现,AbortController但它可能不起作用,因为它没有取消“批量”的获取请求,而只是取消单个获取请求。我的代码如下:
let abortController = new AbortController();
const getNearbyHikes = async (coordinates) => {
abortController.abort();
abortController = new AbortController();
for (const coord of coordinates) {
if (coord) {
try {
const { lat, lng } = cord.coordinates
const response = await fetch(
'http://localhost:5000/category/' + lat + "/" + lng + '/' + searchCategory,
{signal: abortController.signal}
)
const result = await response.json();
setHikes((prevState) => [...prevState, ...result.businesses])
} catch (error) {
if(error.name === 'AbortError'){
return;
}
throw error …Run Code Online (Sandbox Code Playgroud)