Kemunculan API fetch() untuk membuat permintaan daripada JavaScript telah menimbulkan persoalan mengenai mekanisme pembatalannya untuk dalam -permintaan penerbangan. Dari segi sejarah, tiada pilihan terbina dalam. Walau bagaimanapun, kemas kini baru-baru ini telah memperkenalkan laluan untuk pembatalan permintaan.
Berkuat kuasa 20 September 2017, fetch() kini menyokong parameter isyarat, membolehkan pembatalan permintaan melalui gabungan dengan AbortController. Langkah berikut menggariskan proses:
Buat objek AbortController:
Dapatkan isyarat AbortController:
Lepasi isyarat untuk mengambil():
Batalkan permintaan apabila perlu:
Pertimbangkan contoh berikut (serasi dengan Firefox 57 ):
// Create an AbortController instance. const controller = new AbortController(); const signal = controller.signal; function beginFetching() { console.log('Now fetching'); fetch("https://httpbin.org/delay/3", { method: 'get', signal: signal, }) .then(function(response) { console.log(`Fetch complete. (Not aborted)`); }) .catch(function(err) { console.error(` Err: ${err}`); }); } function abortFetching() { console.log('Now aborting'); // Abort the request. controller.abort(); }
Dalam contoh ini, mengklik butang "Mulakan" akan memulakan permintaan, manakala butang "Batalkan" akan menamatkannya sebelum selesai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membatalkan Permintaan `fetch()` Dalam Penerbangan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!