2016-09-20 64 views
0

你好,我要尋找一個在咖啡腳本代碼生成在JavaScript的代碼如何翻譯的CoffeeScript Promise.try

Promise = require('bluebird'); 

myfunction = function(body) { 
    return Promise.try(function() { 
    return console.log('OK'); 
    }); 
}; 

我已經試過類似:

Promise  = require 'bluebird' 

    myfunction: (body) -> 
    return Promise.try -> 
     return console.log('OK') 

但結果是這樣的:

Promise["try"](function() {}); 

任何想法??在此先感謝

+0

用'='而不是':',它[workforme](http://coffeescript.org/#try:%20%20%20Promise%20%20%20%20%20%20%3D% 20require%20'bluebird'%0A 0A%%20%20%20myfunction%20%3D%20(體)%20-%3E%0A%20%20%20%20return%20Promise.try%20-%3E% 0A%20%20%20%20%20%20return%20console.log( 'OK'))?不知道爲什麼'console.log'會被刪除。 – Bergi

+0

順便說一下,你應該使用'myfunction = Promise.method(body) - > console.log('OK')' – Bergi

回答

3

我猜的東西是關閉的,在你的文件縮進,不同之處以上是正確的:

  1. 你不需要return,作爲函數/塊的最後一條語句會自動返回。
  2. 您應該仍然使用=進行變量賦值,而不是:,它用於在定義對象時分配屬性。 Coffeescript和Javascript一樣。

此代碼:

Promise = require 'bluebird' 

myfunction = (body) -> 
    Promise.try -> 
    console.log 'OK' 

編譯就好到:

var Promise, myfunction; 

Promise = require('bluebird'); 

myfunction = function(body) { 
    return Promise["try"](function() { 
    return console.log('OK'); 
    }); 
}; 
2

關於Promise.try -> transpiling到Promise["try"](function …)這是由於try是在JS一個reserved keyword

+1

這只是必要的,直到ES3,但它只是Coffeescript在這裏相當保守。人們也可以使用'Promise.attempt'作爲別名。 – Bergi

+0

那麼,有沒有可能產生Promise.try? – GutiMac

+1

@GutiMac無關緊要,它們完全相同。 – Bergi