I'm looking for a way to control repeated calls to the same webservice, in case of 2 identical remote requests, I want to abort the first one.
Not sure yet if I can use AbortController. It seems if I call controller.abort();
before fetch
I abort the subsequent call..
<button class="download"> fetch </button>
<button class="abort"> abort </button>
<script>
var controller = new AbortController();
var signal = controller.signal;
var downloadBtn = document.querySelector('.download');
var abortBtn = document.querySelector('.abort');
downloadBtn.addEventListener('click', fetchJson);
abortBtn.addEventListener('click', function() {
controller.abort();
console.log('Download aborted');
});
function fetchJson() {
// TODO abort previous remote call here
// controller.abort(); // won't work
fetch("http://fakeapi.jsonparseronline.com/posts", {signal}).then( async response => {
console.log(await response.json())
}).catch(function(e) {
console.error(e)
})
}
</script>