7

チームのコードベースで Q promise の使用を標準化することを検討しています。約束に関してスタイルを強制するのに役立つ、適切な jscs 拡張機能 (または他のリンター) はありますか?

私たちの約束は次の形式に従うことを望みます。

promise()
  .then()
  .catch()
  .done();

そして、リンターが.then()コード内で欠落しているすべてをキャッチすることを望みます.catch()

約束に関しては、他の文体のヒントについてのアドバイスも大歓迎です。

4

1 に答える 1

2

@Jeffそのアプローチは完全にやり過ぎに見えます。この関数のいずれの後にも、任意の関数を続けてはなりません。それぞれに異なる目的があります。

  • then(mapSuccess, mapFail)解決された値を処理する必要があり、 callback によって返された値で解決される結果の promise が必要な場合に使用します。
    技術的には、他の約束によって解決される他の値への値のマッピングです。map入力配列を変換関数の結果である他の配列にマップする配列と同様に考えることができます。
  • catch(mapFail)は純粋に のエイリアスですthen(null, mapFail)。したがって、必要なときに使用しますが、 mapSuccessコールバックthenを渡す必要はありません。
  • done(onSuccess, onFail)解決された値を処理することだけが必要な場合は、単純に使用します (他のプロミスへのマッピングは必要ありません)。doneまた、すべての最終的なエラーが自然に公開されることを保証します (thenそしてcatch、彼らはマッパーであるため、エラーをプロミスの結果に飲み込みます)。

リンターに追加できるルールは 1 つしかないと想像できます (飲み込んだ例外をログに記録しないライブラリを使用することを前提としています)。結果が無視されている場合に使用法について警告するためのものです (処理のために他のエンティティが続くか渡される必要がありthen()ます) 。catch()done(..)

于 2015-04-22T08:18:00.983 に答える