2016-04-05 8 views
7

プロミスは現在es6のグローバルな予約語になっており、lintersはエラーをスローします。したがって、このプロミスの再定義

var Promise = require("bluebird"); 

または私は

var BluebirdPromise = require("bluebird"); 
+6

内のこれらの行を置きます。何も問題ない。あなたはもっと速い実装を使用しています、それだけです。しかし、あなたは様々な図書館によって与えられる約束をますます使用するかもしれないことに注意してください。これは非常に限定された置き換えです(図書館を世界的な約束者として定義する方法についてはノード世界で議論があります)。 –

+2

モジュールアプローチでは、明示的にしない限り、グローバル変数を上書きしないため、問題はありません: 'global.Promise =' ... – MinusFour

+2

'Promise'は予約語ではありません。 – Bergi

答えて

2

行う必要がありますをすることの落とし穴はどのようなものであればグローバルではありませんとの約束を再宣言するために、問題がないように見えます。しかし、2番目の方が良いアプローチです

多くの人がそうしています。何も問題ない。より速い 実装を使用しているだけです。しかし、さまざまなライブラリによって約束されている がますます使用されるかもしれないので、これは非常に限定された の置き換えです(ノードの世界では、 のライブラリをグローバルな約束プロバイダとして定義する方法について議論があります)。 - デニス・Séguret

2

は、単に私たちの多くはそれを行う.jshintrc

{ 
    "undef": true, 
    "unused": true, 
    "predef": [ "-Promise" ] 
} 
+0

{"predef":["-Promise"]}私のために仕事をしました:) – ghuroo