のNode.jsとBluebird.jsを使用し、特定のプロジェクトで作業するとき、私は多くの場合、次のアプローチを参照してください。`.then`ハンドラで不要なラッパー関数を削除しますか?
function someAsyncOp(arg) {
return somethingAsync(arg).then(function (results) {
return somethingElseAsync(results);
});
}
これはまったく同じ引数を受け入れる別の関数のラッパー関数/クロージャを作成する、です。
function someAsyncOp(arg) {
return somethingAsync(arg).then(somethingElseAsync);
}
私は他の人にそれを提案するとき、彼らは通常、それを好きでそれに切り替えます。
重要な注意点は、しかし、があります:(のようなconsole.log
はありません)あなたがobject.function
のようなものを呼んでいる、と関数がthis
に依存している場合は、this
は、その結合を失うことになります。
return somethingAsync(arg).then(somethingElseAsync).catch(console.log.bind(console));
これは潜在的に望ましくないようです、と.bind
コールは少しぎこちない感じている:あなたはobject.function.bind(object)
をしなければなりません。あなたはいつも閉鎖的なアプローチで間違って行くことはできません。
Googleでこれについての議論を見つけることはできませんが、不要なラッパー関数についてはESLintでは何もないようです。私はそれについてもっと知ろうとしていますのでここにいるのです。私はそれが私が私が知らないものを知らないのだと思います。 名前はありますか?(閉鎖の役に立たない使用?)他の考えや知恵?ありがとうございます。
:誰かが、someAsyncOp
も冗長であるとコメントするつもりです。それは、何か役に立つとふりをしましょう。