Я реализую функцию, которая имеет отложенное значение для возврата, и внутри функции у меня есть много вложенных условных выражений:
например:.
deferred = Q.defer()
FS.readFile("foo.txt", "utf-8", (error, text) ->
if error
deferred.reject(new Error(error))
else
deferred.resolve(text)
)
return deferred.promise
который будет скомпилирован в:
var deferred;
deferred = Q.defer();
FS.readFile("foo.txt", "utf-8", function(error, text) {
if (error) {
--> return <-- deferred.reject(new Error(error));
} else {
--> return <-- deferred.resolve(text);
}
});
return deferred.promise;
Мне нужен только последний возврат, но не возвращается if/else (т.е. → return < - в скомпилированном коде)
Как я могу избежать такого поведения (неявные возвращения там, где они не нужны) компилятора coffeescript?