Isu dengan Pelaksanaan Kod dalam Panggilan Balik JSON D3
Masalah:
Dalam versi D3 sebelumnya kepada v5, kod yang ditulis dalam panggilan balik fungsi d3.json() tidak dilaksanakan, menyebabkan penyemak imbas melangkau semua yang disertakan dalam panggilan.
Penyelesaian:
Perubahan Tandatangan dalam D3 v5:
Tandatangan d3.json() telah berubah dalam D3 v5. Ia kini mengembalikan Janji dan bukannya bergantung pada fungsi panggil balik. Argumen kedua kini menjadi objek RequestInit pilihan.
Kod Diubah Suai:
Untuk menyelesaikan isu, tulis semula kod seperti berikut:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback here... });
Pengendalian Ralat:
D3 v5 tidak lagi bergantung pada parameter pertama panggilan balik untuk pengendalian ralat. Sebaliknya, janji yang dikembalikan oleh d3.json() akan ditolak jika ralat berlaku.
Terdapat dua cara utama untuk mengendalikan ralat:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback here... }) .catch(function(error) { // Error handling code here... });
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback here... }).catch(function(error) { // Error handling code here... });
Dengan melaksanakan perubahan ini, anda boleh memastikan bahawa kod anda dalam panggilan balik d3.json() akan dilaksanakan seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Kod Saya Tidak Melaksanakan Dalam Panggilan Balik D3.json()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!