AbortController 听说可以中断请求,很早听过,从未用过

314 阅读1分钟

我们调用 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前端

(我们的宗旨是,为了加班,为了秃顶……,仰望大佬),希望小伙伴们加群一起学习