Rumah > Artikel > hujung hadapan web > Mengapa Kod Saya Gagal Dilaksanakan Dalam Panggilan Balik d3.json() dalam D3 v5?
Gagal Melaksanakan Kod Di Dalam d3.json() Panggilan balik dalam D3 v5
Dalam D3 v5, pelaksanaan kod dalam d3. json() panggil balik sering gagal. Ini berbeza daripada gelagat dalam versi sebelumnya di mana panggilan balik telah dilaksanakan seperti yang dijangkakan.
Punca:
Tandatangan d3.json() telah mengalami perubahan daripada D3 v4 hingga v5. Dalam v5, permintaan dikendalikan menggunakan janji dan bukannya panggilan balik. Argumen kedua kepada d3.json() bukan lagi panggilan balik tetapi objek RequestInit pilihan.
Penyelesaian:
Untuk menyelesaikan isu ini, tukar kod dalam panggil balik kepada fungsi panggil balik diluluskan sebagai hujah kepada kaedah .then() baharu. Kod tersebut menjadi:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback goes here... });
Pengendalian Ralat:
Pengendalian ralat juga telah dikemas kini dalam D3 v5. Dalam versi sebelumnya, ralat telah dikendalikan menggunakan parameter pertama panggilan balik yang dihantar kepada d3.json(). Dalam v5, janji yang dikembalikan oleh d3.json() mungkin ditolak untuk menunjukkan ralat. Ralat boleh ditangkap menggunakan kaedah .catch().
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback goes here... }) .catch(function(error) { // Handle the error here... });
Atas ialah kandungan terperinci Mengapa Kod Saya Gagal Dilaksanakan Dalam Panggilan Balik d3.json() dalam D3 v5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!