ホームページ  >  記事  >  ウェブフロントエンド  >  コードが 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 を返すようになりました。 2 番目の引数はオプションの RequestInit オブジェクトになりました。

修正コード:

問題を解決するには、コードを次のように書き換えます:

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

エラー処理:

D3 v5 は、エラー処理のコールバックの最初のパラメーターに依存しなくなりました。代わりに、エラーが発生した場合、d3.json() によって返された Promise は拒否されます。

エラーを処理するには、主に 2 つの方法があります:

  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() エラー処理用:
  1. を実装することによりこれらの変更により、d3.json() コールバック内のコードが意図したとおりに実行されることを確認できます。

以上がコードが D3.json() のコールバック内で実行されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。