.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 の違いIt の省略
意味的には同等ですが、.then() を返すことと省略することには微妙な違いがありますit:
エッジケース
まれに、.then(function(a){ return a; }) が発生する場合があります。異常な動作がある:
結論
一般に、 .then(function(a){ return a; }) はノーです。 -op は、Promise チェーンに値を追加しません。共有 Promise の回避や、あいまいな thenable 関連の動作の処理など、使用するやむを得ない理由がない限り、省略する必要があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3