요점을 살펴 보겠습니다. 나는 CS를 사랑한다. 나는 노드를 좋아한다. 신들이 제안한대로 콜백을 사용하는 것보다 더 낫다.콜백 (callback)에 관한 Coffescript 및 Nodejs 코딩 스타일
불행히도 나는 보통 약간 중첩 된 콜백에서 오류를 지속적으로 검사합니다.
다음은 동일한 샘플 작업을 수행하는 세 가지 스타일입니다. 들여 쓰기와 조건 지옥을 피하고 가독성을 희생하지 않기 위해 사용하는 것은 어느 것입니까?
약속, 비동기 또는 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
대신 unless
의를 사용하고 두 번째에.^_^
[코드 검토 SE] (http://codereview.stackexchange.com/)에 더 적합 할 수 있습니다. 하지만, 가장 안쪽 콜백이'cb '를 호출하는 방법을 결정하는 것일뿐 아니라'collection.findOne token : token, cb'이 필요하지 않을 수도 있습니다. 그리고 개인적으로'async' 등을 재검토 할 것을 제안합니다 - https://gist.github.com/coiscir/2ab7751207d5af6b4e0b. –
Woa 코드 리뷰가 존재했는지조차 알지 못했습니다.비동기 옵션은 물론 더 좋지만 언제나 옵션이 아닙니다. 나는이 순간을위한 최고의 스타일을 궁금해. :) –