请参见以下代码。预期的行为是在控制台中看到单个“ 100”,然后在清除间隔后仅此而已。但是实际上,每次清除之前,它每次记录2-3'100'。为什么不立即清除间隔?
var endpoint = "https://example.com";
axios
.post()
.then(function(response) {
var timerId = setInterval(function() {
axios
.get(endpoint + response.data.url)
.then(function(response) {
console.log(response.data.percentageComplete);
if (response.data.percentageComplete == 100) clearInterval(timerId);
})
.catch(function(error) {});
}, 1000);
})
.catch(function(error) {});
答案 0 :(得分:1)
因为一旦HTTP请求成功完成就将其清除,那么该请求可能需要几秒钟才能完成。同时,setInterval
触发了另外一两个请求。