要点に行きましょう。私はCSが大好きで、ノードが大好きで、神々が提案したようにコールバックを使用しても問題ありません。
残念ながら、私は通常、わずかにネストされたコールバックのエラーを常にチェックすることになります。
以下は、同じサンプル タスクを実行するための 3 つの異なるスタイルです。インデントを回避し、地獄を条件付け、同時に読みやすさを犠牲にしないために使用するものはどれですか?
promises、async、iced-cs を使用していない場合は、新しいものを提案してください。
authenticate: (token, cb) =>
@collection 'services', (err, collection) =>
if err
cb err, undefined
else
collection.findOne token: token, (errFindingService, service) =>
if err
cb errFindingService, undefined
else
cb undefined, service
authenticate: (token, cb) =>
@collection 'services', (err, collection) =>
if not err
collection.findOne token: token, (errFindingService, service) =>
if not errFindingService
cb undefined, service
else
cb errFindingService, undefined
else
cb err, undefined
authenticate: (token, cb) =>
@collection 'services', (err, collection) =>
return cb err, undefined if err
collection.findOne token: token, (errFindingService, service) =>
return cb errFindingService, undefined if err
cb undefined, service
PS: https://github.com/polarmobile/coffeescript-style-guideに準拠するif not err
代わりに、私が使用している2番目のものunless
よろしくお願いします。^_^