ホームページ > ウェブフロントエンド > jsチュートリアル > 「.then(function(a){ return a; })」は実際に Promise に対して何かを行うのでしょうか?

「.then(function(a){ return a; })」は実際に Promise に対して何かを行うのでしょうか?

Barbara Streisand
リリース: 2024-11-10 14:58:03
オリジナル
595 人が閲覧しました

Does

「.then(function(a){ return a; })」は Promise に影響を及ぼしますか?

Bookshelf で Bluebird Promise を使用する場合、開発者はよく以下のようなパターンを使用します:

var getEvents = function(participantId) {
  return new models.Participant()
    .query({where: {id: participantId}})
    .fetch({withRelated: ['events'], require: true})
    .then(function(model) {
      return model;
    });
};
ログイン後にコピー

ただし、このコードは、Promise に慣れていない人にとっては疑問が生じます。 then 関数はコードの全体的な動作に何らかの意味のある影響を与えますか?次の実装は、それなしでも同じ結果を達成できますか?

var getEvents = function(participantId) {
  return new models.Participant()
    .query({where: {id: participantId}})
    .fetch({withRelated: ['events'], require: true});
};
ログイン後にコピー

謎の解決

問題の核心は、then に渡される関数パラメーターにあります。この引数は、チェーン内の先行する Promise の戻り値を受け取ることが期待されます。したがって、戻り値は a; であるように見えます。 then 関数内のステートメントは、受け取った引数を変更せずに渡すだけなので、基本的に何も行われません。

Then() を保持する理由

見かけの冗長性にもかかわらず、then 関数は機能します。特定の使用例における目的。 1 つの例は、返された Promise をチェーンの下で別の方法で処理する必要がある場合です。たとえば、ログに記録したり、JSON に変換したり、カスタム方法で処理したりできます。もう 1 つの利点は、then 関数でエラー処理ができることです。これは、使用されている Promise ライブラリに応じて、done によっても実現できます。

ベスト プラクティス

一般に、次のことのみをお勧めします。本当に必要な場合に使用してください。不必要な then 関数は、コードベースに不必要な複雑さを追加し、エラーの可能性を高める可能性があります。一般的な経験則として、返された Promise の結果またはエラーを明示的に変更または処理する必要がある場合にのみ then を組み込みます。

以上が「.then(function(a){ return a; })」は実際に Promise に対して何かを行うのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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