ES6语法:这是一个错误:.catch(err => throw err);

时间:2016-09-26 23:04:09

标签: javascript

以下代码适用于FINE:

 pool.getConnection()
    .then((conn)=>{
         // something here
       })
      .catch((err) => {
      throw err;
    });

但是当我重新格式化它时,节点会抛出错误:

return pool.getConnection()
    .then((conn) => {
     //something here
    })
    .then(results => results[0].insertId)
    .catch(err => throw err);  <-- NODE COMPALINS HERE


$>somefile.js line(190)
.catch(err => throw err);
                  ^^^^^
SyntaxError: Unexpected token throw

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

箭头功能有一种行为,如果你不在其后放{},它就会隐含return

所以你的代码基本上是这样的:

.catch(err => { return throw err; });

您只能返回表达式,并且不能返回throw等语句。

&#13;
&#13;
function test(e) {
  return throw e; // syntax error
}
&#13;
&#13;
&#13;