在D3 v5 中,d3.json() 的簽章發生了顯著變化與先前的版本相比。 d3.json() 現在不使用回呼函數,而是傳回一個可以使用其 .then() 方法處理的 Promise。此變更解決了舊實作中的幾個問題,並使 D3 與現代瀏覽器 API 保持一致。
要修正 d3.json() 回呼中的程式碼未執行的問題,您需要更新程式碼才能使用 Promise。從 GeoJSON 檔案載入資料的新語法如下:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your callback goes here... });
除了更改回調結構之外,D3 v5 還引入了載入時處理錯誤的新方法資料。您應該使用 Promise 的 .catch() 方法,而不是將錯誤處理程序作為第一個參數傳遞給回呼函數:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your callback goes here... }) .catch(function(error) { // Do some error handling. });
以上是為什麼 d3.json() 回呼中的程式碼未執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!