Io sono l'attuazione di una funzione che ha differito valore da restituire e all'interno della funzione ho molti nidificati espressioni condizionali:Come evitare un "ritorno" implicito nel coffeescript in espressioni condizionali?
esempio:
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
che oltre sarà compilato in:
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;
Ho bisogno solo dell'ultimo ritorno, ma non dei ritorni if / else (cioè -> ritorno < - nel codice compilato)
Come posso evitare un simile comportamento (ritorni impliciti laddove non sono necessari) del compilatore coffeescript?
Questo non è il problema che pensi sia. I ritorni in questione stanno tornando dalla funzione di callback interna. Questo è un comportamento desiderabile e non interferisce in alcun modo con il "ritorno" della funzione esterna. – meagar