我们调用 controller.abort() 去取消之前的请求。你也可以一次用相同的 signal 取消多个 fetches
var redundantRequests = 0;
var successfulRequests = 0;
var controller;
var testApi = "http://…… …… ……";
div.addEventListener('keydown', function(event) {
if (controller) {
controller.abort();
}
if (AbortController) {
controller = new AbortController();
var signal = controller.signal;
}
fetch(testApi, {signal})
.then(function(response) {
response.json().then((data) => {
successfulRequests++;
…… …… …… ……
})
})
.catch(function(e) {
if (e.name === "AbortError") {
redundantRequests++;
…… …… …… ……
}
})
})
结语
前端react QQ群:
788023830----React/Redux - 地下老英雄前端交流 QQ群:
249620372----FRONT-END-JS前端(我们的宗旨是,为了加班,为了秃顶……,仰望大佬),希望小伙伴们加群一起学习