首頁  >  文章  >  web前端  >  為什麼 d3.json() 回呼中的程式碼未執行?

為什麼 d3.json() 回呼中的程式碼未執行?

DDD
DDD原創
2024-10-30 12:32:141036瀏覽

Why Is My Code Within the d3.json() Callback Not Executing?

d3.json() 回呼中的程式碼未執行

說明

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn