Frequently requires to abort fetch request. Current realization of fetch() doesn't have this opportunity, but it can be realized by behavior of Promise.race.
You can abort or cancel any long promise or fetch.
import abortable from './AbortablePromise';
const long_request = abortable(fetch(/* url */));
long_request
.then(() => console.log('never will be resolved'))
.catch(err => err === 'abort');
/* ... */
long_request.abort();
Interesting solution, but it does not really "cancel" the fetch request. It merely ignores the return value.