Dalam D3 v5, tandatangan d3.json() telah berubah dengan ketara berbanding versi sebelumnya. Daripada menggunakan fungsi panggil balik, d3.json() kini mengembalikan Promise yang boleh dikendalikan menggunakan kaedah .then()nya. Perubahan ini menangani beberapa isu dengan pelaksanaan lama dan membawa D3 sejajar dengan API penyemak imbas moden.
Untuk menyelesaikan isu di mana kod dalam panggilan balik d3.json() tidak dilaksanakan, anda perlu mengemas kini kod anda untuk menggunakan Promises. Sintaks baharu untuk memuatkan data daripada fail GeoJSON adalah seperti berikut:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your callback goes here... });
Selain menukar struktur panggil balik, D3 v5 juga memperkenalkan cara baharu untuk mengendalikan ralat semasa memuatkan data. Daripada menghantar pengendali ralat sebagai parameter pertama kepada fungsi panggil balik, anda harus menggunakan kaedah .catch() Promise:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your callback goes here... }) .catch(function(error) { // Do some error handling. });
Atas ialah kandungan terperinci Mengapa Kod Saya Dalam Panggilan Balik d3.json() Tidak Melaksanakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!