web-dev-qa-db-ja.com

約束のJavaScript命名規則?

promiseを保持するJavaScript変数の命名規則があると便利だと思います。プログラミング言語の標準を超えた命名規則は一般的に好きではありませんが、約束が関数の引数として渡されるプログラミングのスタイルでは、変数が約束を保持しているか「本物」を保持しているかを一目で見分けるのが難しい場合があります。

私はpromiseOfFoopFooを個人的に使用しましたが、前者は少し冗長で、後者はハンガリー語からのフラッシュバックを提供します。

一般的に使用される規則はありますか?

54
jevakallio

これは、それらをどのように使用するかによりますね。

コードが次のようになっている場合:

var imageLoading = loadImage(url); // returns promise
imageLoading.done(showImage);

// imageLoading.done
// imageLoading.error
// imageLoading.then
// imageLoading.success
// imageLoading.fail
// ... whatever your library supports

次に、約束に現在時制の動詞のような名前を付けることをお勧めします...

しかし、遅延オブジェクトに依存するライブラリを構築している場合

// accepts a promise
var showImage = function (promise) {
    promise.done(function (img) { /* ...... */ });
};

次に、どのメソッドがプロミスを取るか、どのメソッドがプロミスしないかについての理解がある限り、変数を名詞として命名することに特に問題はありません。

var image = loadImage(url); // returns promise
showImage(image);           // acts on promise

これで、インターフェースは本当にクリーンになり、100%手続き型に見えるコードを記述できます。 ... buuuut、どの関数/メソッドがプロミスを使用し、どれがオブジェクトを使用するかを知る必要があります。

オブジェクトメソッド内でコールバックとしてpromiseを渡す場合は、promiseまたはtweetLoadingまたはdataParsingなど、その特定の状況のコンテキスト内で意味のある名前を付けることができます。 。

showImageの定義について、私が選択したパラメーターはpromiseと呼ばれるフラットアウトです。そのため、その関数で作業を行っている場合、または一連の内容をデバッグする必要がある場合は、あなたがそれを見た秒がそれがpromiseオブジェクトをとることを見ることができました。

17
Norguard

私はパブリックコンベンションを知りませんが、自分のコードで以下を使用しました:

  • var dfrd:据え置きオブジェクト(同じスコープで2つ以上必要だったことを思い出したことはありません)
  • var p: 約束
  • var p_foo:いくつかの名前付き約束の1つ
  • var promises:Promiseを含む配列またはプレーンオブジェクト

例外はjqXHRオブジェクトです。このオブジェクトをvar jqXHR(繰り返しますが、同じスコープで2つ以上必要だったことを思い出しません)。

0