2014-09-29 2 views
0

Я пытаюсь перевести этот код Javascript:Есть ли более лаконичная идиома Кофисэкса для этого?

if(error) { 
    foo(); 
    return null; 
} 
bar() 

в CoffeeScript код, где здесь bar() еще один длинный кусок кода, который я не хочу, чтобы отступы более

Есть ли лучший способ чем это?

if error 
    foo() 
    return null 
bar() 
+1

Может быть, вы можете показать больше функции? Я подозреваю, что это обратный вызов узла, и для этого существует множество шаблонов для упрощения. – Bergi

+0

Да, это первый фрагмент обратного вызова Node, но как он меняет вопрос? Я прошу об общем подходе. В противном случае, что бы вы предложили? – mattecapu

+0

@mattecapu Какой лучший способ вы ожидаете? –

ответ

2

Ваш код выглядит хорошо для меня.

Хотя, если вы действительно хотите быть один вкладыш, вы можете воспользоваться скобками:

return (foo(); null) if error 
+1

Вот что я искал. Однако, может быть, это слишком красноречиво? Как вы думаете, это менее читаемо? – mattecapu

+2

Да, менее читаемо. Не делайте этого в производстве. –

0

насчет

if error 
    foo() 
else 
    bar() 

(возможно with a trailing return)

+0

проверить отредактированный ответ, здесь 'bar()' на самом деле большая часть кода – mattecapu

+0

Тогда нет ничего более кратким (хотя я не вижу, что не так с отступом 'bar') – Bergi

-1

Вы можете переписать его в альтернативной форме (немного другой symatically, так как вы возвращая результат Foo()):

return foo() if error 
+0

Я не хочу возвращаться результат 'foo()' ... – mattecapu