首頁  >  文章  >  web前端  >  為什麼我的程式碼沒有在 D3.json() 的回呼中執行?

為什麼我的程式碼沒有在 D3.json() 的回呼中執行?

Susan Sarandon
Susan Sarandon原創
2024-11-01 21:41:02467瀏覽

Why Is My Code Not Executing Within D3.json()'s Callback?

D3 的JSON 回呼中的程式碼執行問題

問題:

問題:

在之前的D3 版本中到v5,d3.json()函數回調中編寫的程式碼未執行,導致瀏覽器跳過呼叫中包含的所有內容。

解決方案:

D3 v5 中的簽章變更:

d3.json() 的簽章在D3 v5中已更改。現在它會傳回一個 Promise,而不是依賴回調函數。第二個參數現在是一個可選的 RequestInit 物件。

修改的代碼:

d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback here...
  });

要解決此問題,請重寫代碼如下:

錯誤處理:

D3 v5 不再依賴回呼的第一個參數來進行錯誤處理。相反,如果發生錯誤,d3.json() 返回的 Promise 將被拒絕。
  1. 處理錯誤的主要方法有兩種:
.then()使用錯誤處理程序:
d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback here...
  })
  .catch(function(error) {
    // Error handling code here...
  });
.catch()用於錯誤處理:
d3.json("/trip_animate/tripData.geojson")
  .then(function(data) {
    // Code from your original callback here...
  }).catch(function(error) {
    // Error handling code here...
  });

透過實作透過這些更改,您可以確保 d3.json() 回呼中的程式碼將如預期執行。

以上是為什麼我的程式碼沒有在 D3.json() 的回呼中執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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