ホームページ >ウェブフロントエンド >jsチュートリアル >プロミスチェーンに「.then(function(a){ return a; })」は必要ですか?
Promise の連鎖: ".then(function(a){ return a; })" を理解する
Promise チェーンを使用する場合、 「.then(function(a){ return a; })」のようなステートメントがよく見られます。この構文はコードに表示されます:
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}) .then(function(model) { return model; }); };
疑問が生じます:この関数は、追加の ".then()" なしで fetch() を直接返すのと機能的に同じですか?
答え: ノーオペ
はい。 「.then(function(a){ return a; })」は事実上、Promise のノーオペレーション (no-op) です。同じ Promise を返し、同じように動作し、同等に呼び出すことができます。
理由:
Promise は、非同期操作を表すために使用されます。 Promise が解決されると、その結果が「then」関数を介してチェーン内の次の Promise に渡されます。ただし、「then」関数が単に入力を返す場合、チェーンに値は追加されません。
作成者がこの関数を使用した理由:
一見冗長に見える「.then()」が含まれているのは、次の 2 つのうちのいずれかに起因する可能性があります。理由:
最後の行:
ほとんどの場合、「.then(function(a){ return a; })」は不要であり、目的の動作に影響を与えることなく省略できます。これは何の目的も持たないプレースホルダーなので、コードをわかりやすくするために削除する必要があります。
以上がプロミスチェーンに「.then(function(a){ return a; })」は必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。