Quando promettere il concatenamento in coffeescript, la funzione definita deve quindi essere associata a "questo".coffeescript promessa concatenamento con definizione della funzione
$q.fcall somecall
.then ((url)->
dosomething()
).bind(this)
.catch (err)->
console.log 'error occured', err
Tuttavia, quanto sopra compila in seguito, che è errato. Come scrivere correttamente allora? O c'è un modo in cui il coffeescript può rappresentare questo?
$q.fcall(somecall).then(((function(url) {
dosomething()
}).bind(this))["catch"](function(err) {
return console.log('error occured', err);
})));
Aiuta. ma dopo la compilazione, il codice javascript generato mostra ancora '[" catch "] (function (err) { return console.log ('error is', err); }));' –
@WeideZhang: Cosa c'è che non va ? 'om()' e 'o ['m']()' sono equivalenti e ['catch' è una parola chiave] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Dichiarazioni/prova ... cattura) in modo che CoffeeScript utilizzi il formato stringa. –