>  기사  >  웹 프론트엔드  >  D3 v5의 d3.json() 콜백 내에서 내 코드가 실행되지 않는 이유는 무엇입니까?

D3 v5의 d3.json() 콜백 내에서 내 코드가 실행되지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-30 15:21:42381검색

Why Does My Code Fail to Execute Within d3.json() Callback in D3 v5?

D3 v5의 d3.json() 콜백 내에서 코드 실행 실패

D3 v5에서는 d3 내에서 코드가 실행됩니다. json() 콜백이 자주 실패합니다. 이는 콜백이 예상대로 실행되었던 이전 버전의 동작과 다릅니다.

원인:

d3.json()의 서명이 D3에서 변경되었습니다. v4에서 v5로. v5에서는 콜백이 아닌 약속을 사용하여 요청을 처리합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.