ES6 giving SyntaxError: Unexpected token ) [duplic

2019-09-16 01:55发布

问题:

This question already has an answer here:

  • ECMAScript 6 features available in Node.js 0.12 2 answers

Here is my Node.js script:

pDownload("http://serv/file", "localfile")
  .then( ()=> console.log('downloaded file no issues...'))
  .catch( e => console.error('error while downloading', e));

function pDownload(url, dest){} // Yes empty, for now

When executing on Node.js v0.10.25 (default on Ubuntu 2015.10) I receive this syntax error about the parenthesis:

/home/nico/main.js:2
  .then( ()=> console.log('downloaded file no issues...'))
          ^
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:902:3

How can I fix it?

回答1:

The version of V8 in Node 0.10 doesn't support arrow functions.

You can fix it by either:

  • Using something like Babel to compile your code to ES5
  • Or using a more recent version of Node, like 5.x
  • Doing with arrow functions

(Thanks James Allardice)