Rumah >hujung hadapan web >tutorial js >Mengapa JSON.stringify Gagal Mengikat Objek Ralat dan Bagaimana Saya Boleh Membetulkannya?
Apabila bekerja dengan soket web dan menghadapi ralat, selalunya perlu menghantar mesej ralat. Pada mulanya, menggunakan JSON.stringify kelihatan seperti penyelesaian yang mudah, tetapi ia tidak menyelaraskan objek Ralat asli dengan betul.
Isu:
Percubaan untuk merangkai hasil objek Ralat dalam objek kosong ({}), menunjukkan bahawa maklumat ralat tidak ditangkap.
Punca:
Masalahnya terletak dalam sifat prototaip objek Ralat. Sifat utama seperti tindanan dan mesej mempunyai bendera terbilangnya ditetapkan kepada palsu. Akibatnya, JSON.stringify melangkau sifat ini semasa proses bersiri, meninggalkan anda dengan objek kosong.
Penyelesaian:
Untuk mengelakkan tingkah laku ini, anda perlu mengekstrak secara manual sifat objek Ralat menggunakan Object.getOwnPropertyNames. Sifat ini kemudiannya boleh diserahkan kepada JSON.stringify sebagai fungsi pengganti untuk mencipta rentetan JSON yang merangkumi maklumat ralat:
JSON.stringify(err, Object.getOwnPropertyNames(err))
Sebagai alternatif, anda boleh mencipta objek ralat tersuai anda sendiri dengan sifat yang boleh dikira, membenarkan mereka dirangkai dengan betul oleh JSON.stringify.
Atas ialah kandungan terperinci Mengapa JSON.stringify Gagal Mengikat Objek Ralat dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!