2015-01-25 9 views
11

Ich versuche Pfeil Funktionen in node v0.10.33 unter Ubuntu 14.04 zu verwenden (Ich bin Knoten mit --harmony Flagge läuft), aber ich bin immer diese Fehlermeldung:Pfeil Funktionen nicht in Knoten --harmony unter Ubuntu arbeiten

console.log([1,2,3,4].map(x => x*x)); 
         ^
SyntaxError: Unexpected token > 
    at Module._compile (module.js:439:25) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:906:3 
+0

Es wird nicht mit dieser Knotenversion unterstützt, auch nicht mit diesem Flag. Siehe http://StackOverflow.com/a/38241325/1385678 –

Antwort

7

Dies sollte nun im Knoten v0.12.x mit dem Flag --harmony funktionieren. Beachten Sie auch, dass Sie Pfeilfunktionen im Knoten mit dem babel-Paket erhalten können.

http://babeljs.io/docs/using-babel/

UPDATE:

Wie angegeben richtig von Mike 'Pomax' Kamermans, der --harmony Flag ist nicht erforderlich, bei der Verwendung von Node.js> = 4.x. Weitere Informationen zum Status der ES6-Unterstützung in Node.js finden Sie unter https://nodejs.org/en/docs/es6/.

+0

Dies sollte die akzeptierte Antwort sein. Ich kann bestätigen, dass die Pfeilfunktionen auf v0.12.0 "unterstützt" sind. Es scheint jedoch, dass es nicht mehr als eine syntaktische Alternative zu "function" ist, da es den Bereich nicht richtig bindet, wie es die Spezifikation erfordert. Daher sind sie im Grunde nutzlos, bis dies behoben ist. –

+0

@PhpMyCoder Dies funktioniert ordnungsgemäß in Node.js> = v4. 'let foo = {a: 'a', foo() {return() => this.a; }}; ' ' foo.foo()(); // => 'a'' –

+0

Beachten Sie, dass ab Anfang 2016 beide aktuellen Versionen von Node (4. * LTS und 5. * stable) dies ohne Flags unterstützen. –

4

Knoten, selbst mit der Harmonieflagge, unterstützt den dicken Pfeil noch nicht. Source.

Bearbeiten: Fun kleine Tatsache, ES6 Unterstützung ist einer der Gründe, warum Node in io.js gespalten wurde. Check out their page on ES6 features - sie bieten eine Flagge für die Pfeilfunktionen, aber raten davon ab, sie zu verwenden.

+0

Dank @tydotg, wissen Sie zufällig, wann diese Zukunft verfügbar sein wird? –

+0

Nicht ganz sicher, was diese Referenzseite zu sagen versucht, aber ich denke, der Punkt ist, dass es noch nicht in der v8-JavaScript-Engine verfügbar ist, also nicht in Knoten. Es sieht so aus, als würden sie erwarten, dass fette Pfeile Ende März auf v8 kommen, so dass es wahrscheinlich in der neuesten Node-Version irgendwann danach verfügbar sein wird. – tydotg

+0

Eigentlich glaube ich nicht, dass 3.29 ein Datum ist, sondern eine Versionsnummer von v8 (die Ende letzten Jahres erschienen zu sein scheint). – tydotg