对于 API GET 请求产生无限循环的情况,我们可以使用以下方法解决:
添加一个标识符来判断是否已经访问过该请求。
示例代码:
// 初始化一个已经访问过的 URL 集合
const visitedUrls = new Set();
function requestApi(url) {
// 如果已经访问过该 URL,直接返回
if (visitedUrls.has(url)) {
return;
}
// 访问该 URL 并将其标记为已访问
visitedUrls.add(url);
fetch(url)
.then(response => response.json())
.then(data => {
// 处理数据
});
}
对于需要传递参数的 API 请求,可以在每次请求时判断参数是否发生改变,来避免无限循环。
示例代码:
let lastParams;
function requestApi(url, params) {
// 如果传入的参数与上一次相同,直接返回
if (params && JSON.stringify(params) === JSON.stringify(lastParams)) {
return;
}
lastParams = params;
// 发起请求
fetch(url)
.then(response => response.json())
.then(data => {
// 处理数据
});
}
以上两种方式都可以有效避免 API GET 请求的无限循环问题。