Pengguna dapat mengubah rute atau filter saat permintaan sebelumnya masih dalam proses. Jika respons lama datang terakhir, data untuk tampilan saat ini mungkin akan ditimpa.

Ikat permintaan ke tampilan

const controller = new AbortController();
fetch(url, { signal: controller.signal });

// When this view is replaced:
controller.abort();
  • Buat pengontrol untuk permintaan atau tampilan yang memiliki hasilnya.
  • Batalkan ketika tampilan dibuang atau istilah pencarian yang relevan berubah.
  • Perlakukan pembatalan sebagai pembatalan yang diharapkan, bukan sebagai kesalahan server untuk mencoba lagi.

Lindungi pembaruan negara juga

Pembatalan mungkin tidak menghentikan setiap operasi setelah tanggapan tiba. Periksa apakah hasilnya masih milik permintaan aktif sebelum memasukkannya ke status bersama.

Uji permintaan pertama yang lambat diikuti dengan permintaan kedua yang lebih cepat. Layar terakhir harus mencerminkan tampilan saat ini, dan pembatalan tidak boleh menampilkan pesan kesalahan yang menyesatkan.