Wenn Versprechen Verkettung in Coffeescript, Funktion definiert für dann müssen an 'diese' binden.coffeescript versprechen Verkettung mit Funktionsdefinition
$q.fcall somecall
.then ((url)->
dosomething()
).bind(this)
.catch (err)->
console.log 'error occured', err
Allerdings kompiliert das oben genannte, was falsch ist. Wie schreibe ich dann richtig? Oder gibt es eine Möglichkeit für Coffeescript, dies darzustellen?
$q.fcall(somecall).then(((function(url) {
dosomething()
}).bind(this))["catch"](function(err) {
return console.log('error occured', err);
})));
Es hilft. aber nach der Kompilierung zeigt der generierte JavaScript-Code immer noch '[" catch "] { return console.log ('error is', err); }));' –
@WeideZhang: Was ist daran falsch? ? 'om()' und 'o ['m']()' sind äquivalent und ['catch' ist ein Schlüsselwort] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Statements/try ... catch), also verwendet CoffeeScript die String-Form. –