AbortController tạo controller và signal.
Truyền signal vào fetch options, khi gọi controller.abort() request bị hủy với AbortError.
javascript
const controller = new AbortController();
const { signal } = controller;
fetch('/api/data', { signal })
.then(r => r.json())
.catch(err => {
if (err.name === 'AbortError') return; // bỏ qua cancel
throw err;
});
controller.abort(); // hủy requestQuan trọng khi component unmount (React useEffect cleanup), search với debounce, hay race conditions.