ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で非同期コールバック関数から値を返すにはどうすればよいですか?

JavaScript で非同期コールバック関数から値を返すにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-27 01:15:09
オリジナル
340 人が閲覧しました

How Can I Return Values from Asynchronous Callback Functions in JavaScript?

非同期コールバック: 戻り値

非ブロッキングな性質のため、非同期コールバック関数からの戻り値は困難になる可能性があります。問題の内訳と解決策は次のとおりです:

提供された例:

function foo(address) {
  // Google Maps stuff
  geocoder.geocode({'address': address}, function(results, status) {
    // Unable to return results[0].geometry.location synchronously
  });
}
ログイン後にコピー

非同期ジオコード コールバック内では、返したい値を同期的に取得できません。そうしようとすると、未定義の値が返されます。

解決策: Result を使用したコールバック

値を取得するには、コールバック関数を foo に渡します。結果:

function foo(address, callback) {
  geocoder.geocode({'address': address}, function(results, status) {
    callback(results[0].geometry.location); 
  });
}
ログイン後にコピー

foo のコールバックで、場所にアクセスできます。 value:

foo("address", function(location) {
  alert(location); // Result obtained here
});
ログイン後にコピー

非同期関数チェーン

非同期呼び出しが別の関数内にネストされている場合、戻り値を取得できるようにその関数も非同期にする必要があります。複雑なシナリオの場合は、Q などの Promise ライブラリを使用して非同期操作を効率的に管理することを検討してください。

以上がJavaScript で非同期コールバック関数から値を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート