.then(function(a){ return a; }) は Promise に対する No-Op ですか?
Promise の領域では.then(function(a){ return a; }) がノーオペレーションであるかどうかという問題が生じます。この興味深いクエリに光を当ててみましょう:
はい、通常は何も操作しません。
問題のコードは、前の Promise の戻り値を受け取ります。 .then() に渡される関数を介してチェーンします。ただし、その関数が単に入力 a を返すだけの場合、Promise の結果の処理や変換は事実上バイパスされます。これにより、Promise パイプラインでは無害ですが不必要な追加ステップになります。
なぜそのように書かれたのですか?
おそらくタイプミスか、以前の誤解の名残です。約束。 Promise が導入されたとき、一部の開発者は、チェーンを継続するには .then() が Promise を返す必要があると誤って信じていました。その結果、入力と同一であっても戻り値が常に Promise のままであることを保証するために、この余分な .then() 呼び出しが追加されました。
Returning .then() と Returning between .then() の違い省略
意味的には同等ですが、.then() を返すことと省略することには微妙な違いがあります:
エッジケース
まれに、.then(function(a){ return a; }) が発生する可能性があります。異常な動作があります:
結論
一般に、 .then(function(a){ return a; }) はノーです。 -op は、Promise チェーンに値を追加しません。これは、共有 Promise の回避や、不明瞭な thenable 関連の動作の処理など、使用するやむを得ない理由がない限り、省略する必要があります。
以上が.then(function(a){ return a; }) は Promise に対して No-Op ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。