Merakam Ralat Pengambilan dengan Status Respons
Anda memanfaatkan API fetch() dengan Redux dan perpustakaan redux-promise-middleware. Dalam coretan kod anda, anda cuba menyemak status respons dan mengendalikan sebarang ralat. Walau bagaimanapun, anda menghadapi masalah di mana janji tidak ditolak.
Memahami Penolakan Janji Ambil
Janji Ambil adalah unik kerana ia hanya menolak kerana ralat rangkaian. Respons dengan kod status seperti 4xx (ralat pelanggan) dan 5xx (ralat pelayan) dianggap sebagai ralat bukan rangkaian. Akibatnya, mereka tidak akan mencetuskan penolakan.
Menyelesaikan Isu
Untuk mengatasi pengehadan ini dan mengendalikan ralat berkaitan status, anda perlu membuang ralat secara manual:
fetch(url) .then((response) => { if (response.ok) { return response.json(); } throw new Error('Something went wrong'); }) .then((responseJson) => { // Handle the data }) .catch((error) => { // Handle the error });
Coretan kod ini mengesahkan status respons (response.ok). Jika ia tidak OK, ia menimbulkan ralat yang mencetuskan pengendali Promise#catch(). Ini membolehkan anda mengendalikan ralat berdasarkan kod status HTTP dengan anggun.
Atas ialah kandungan terperinci Bagaimana Anda Boleh Menangani Ralat Pengambilan Berdasarkan Kod Status HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!