Kiedy obiecuję łańcuchowanie w coffeescript, zdefiniowana funkcja musi wtedy wiązać się z "tym".coffeescript obietnica łańcuchowa z definicją funkcji
$q.fcall somecall
.then ((url)->
dosomething()
).bind(this)
.catch (err)->
console.log 'error occured', err
Jednak powyższe kompiluje się w następujący sposób, który jest nieprawidłowy. Jak zatem poprawnie pisać? Czy istnieje sposób, aby coffeescript mógł to przedstawić?
$q.fcall(somecall).then(((function(url) {
dosomething()
}).bind(this))["catch"](function(err) {
return console.log('error occured', err);
})));
Pomaga. ale po kompilacji wygenerowany kod javascript nadal pokazuje '[" catch "] (function (err) { return console.log (" błąd jest ", err); }));' –
@WeideZhang: Co jest nie tak z tym ? 'om()' i 'o ['m']()' są równoważne, a ['catch' jest słowem kluczowym] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Instrukcje/try ... catch), więc CoffeeScript używa formy łańcuchowej. –