2015-01-25 12 views
11

sto cercando di utilizzare le funzioni di direzione in node v0.10.33 sotto Ubuntu 14.04 (sto correndo nodo con --harmony bandiera), ma sto ottenendo questo errore:Freccia funzioni non lavorano nel nodo --harmony sotto Ubuntu

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

Non è supportato su quella versione di nodo, anche con quel flag. Vedi http://stackoverflow.com/a/38241325/1385678 –

risposta

7

Questo dovrebbe funzionare ora nel nodo v0.12.x, con il flag --harmony. Si noti inoltre che è possibile ottenere le funzioni freccia nel nodo utilizzando il pacchetto babel.

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

UPDATE:

Come indicato correttamente da Mike 'Pomax' Kamermans, la bandiera --harmony non è necessario quando si utilizza Node.js> = 4.x. Vedere https://nodejs.org/en/docs/es6/ per ulteriori informazioni sullo stato del supporto ES6 in Node.js.

+0

Questa dovrebbe essere la risposta accettata. Posso confermare che sulle funzioni freccia v0.12.0 sono "supportati". Tuttavia, sembra che non sia niente di più che un'alternativa sintattica alla 'funzione', perché non associa in modo corretto l'ambito come richiesto dalla specifica. Quindi, sono fondamentalmente inutili finché non viene risolto. –

+0

@PhpMyCoder Funziona correttamente in Node.js> = v4. 'let foo = {a: 'a', foo() {return() => this.a; }}; ' ' foo.foo()(); // => 'a'' –

+0

Si noti che all'inizio del 2016, entrambe le versioni correnti di Node (4. * LTS e 5. * stable) supportano questo senza bisogno di alcun flag. –

4

Il nodo, anche con la bandiera di armonia, non supporta ancora la freccia grossa. Source.

Modifica: Fun little fact, il supporto ES6 è uno dei motivi per cui Node è stato biforcuto in io.js. Controlla their page on ES6 features - forniscono un flag per le funzioni di freccia, ma scoraggiano l'utilizzo.

+0

Grazie a @tydotg, sai per caso quando questo futuro sarà disponibile? –

+0

Non del tutto sicuro di ciò che quella pagina di riferimento sta cercando di dire, ma penso che il punto sia che non è ancora disponibile nel motore JavaScript v8, quindi non è nel nodo. Sembra che stiano anticipando le frecce grosse che arrivano alla v8 a fine marzo, quindi sarebbe probabilmente disponibile nell'ultima release del nodo qualche tempo dopo. – tydotg

+0

In realtà, non credo che 3.29 sia una data, ma un numero di versione di v8 (che sembra essere stato rilasciato alla fine dello scorso anno). – tydotg