D3 v5 中無法執行d3.json() 回呼中的程式碼
在D3 v5 中,d3.json() 回呼中執行程式碼失敗。 json() 回呼經常失敗。這與先前版本中按預期執行回調的行為不同。
原因:
d3.json() 的簽名已從 D3 進行了更改v4 到 v5。在 v5 中,請求是使用 Promise 而不是回呼來處理的。 d3.json() 的第二個參數不再是回調,而是可選的 RequestInit 物件。
解決方案:
要解決此問題,請將程式碼轉換為回呼作為參數傳遞給新的 .then() 方法的回呼函數。程式碼變成:
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback goes here... });
錯誤處理:
錯誤處理也已在 D3 v5 中更新。在先前的版本中,錯誤是使用傳遞給 d3.json() 的回呼的第一個參數來處理的。在 v5 中,d3.json() 傳回的 Promise 可能會被拒絕以指示錯誤。可以使用 .catch() 方法擷取錯誤。
d3.json("/trip_animate/tripData.geojson") .then(function(data) { // Code from your original callback goes here... }) .catch(function(error) { // Handle the error here... });
以上是為什麼我的程式碼無法在 D3 v5 中的 d3.json() 回呼中執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!