我試圖寫在CoffeeScript中一個簡單的GitHub的API調用,但已經運行到了我無法coffeescript.org和咖啡導軌之間的不一致解釋寶石。我已經檢查過多次製表符/空格,超過了我可以計數的次數,並且覺得必須有一些微妙或愚蠢的東西,我錯過了。的CoffeeScript編譯變化(coffeescript.org VS咖啡軌)
原始代碼
$ ->
gistids = ['5100088']
for gistid in gistids
$.ajax
url: 'https://api.github.com/gists/'+gistid,
type: 'GET',
dataType: 'jsonp'
.success (gistdata) ->
console.log(gistdata.data.files)
.fail (e) ->
console.log(e)
Coffeescript.org編譯
它高興地編譯到coffeescript.org以下(當通過控制檯運行,功能完全按預期)。
$(function() {
var gistid, gistids, _i, _len, _results;
gistids = ['5100088'];
_results = [];
for (_i = 0, _len = gistids.length; _i < _len; _i++) {
gistid = gistids[_i];
_results.push($.ajax({
url: 'https://api.github.com/gists/' + gistid,
type: 'GET',
dataType: 'jsonp'
}).success(function(gistdata) {
return console.log(gistdata.data.files);
}).fail(function(e) {
return console.log(e);
}));
}
return _results;
});
Rails的咖啡寶石編譯(這是我的輸出)
備用編譯顯然是註定失敗,似乎並沒有甚至接近我想要實現的。它幾乎看起來像for
循環正在嘗試執行內容,因爲你期望在eat food for food in ['toast', 'cheese', 'wine']
類型的語法?
這段代碼也輸出,如果你使用其他的在線「嘗試CoffeeScript的」類型的網站,如http://www.compileonline.com/try_coffeescript_online.php
$(function() {
var gistid, gistids, _i, _len, _ref, _results;
_ref = gistids($.ajax({
url: 'https://api.github.com/gists/' + gistid,
type: 'GET',
dataType: 'jsonp'.success(function(gistdata) {
return console.log(gistdata.data.files).fail(function(e) {
return console.log(e);
});
})
}));
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
gistid = _ref[_i];
_results.push(gistids = ['5100088']);
}
return _results;
});
有什麼我錯過了?在使用的版本,編譯標誌差異,被忽略的小的語法錯誤,還是我完全錯誤的版本之間是否有重大變化?