在 lambda/箭头函数中抛出没有大括号的错误[重复]

问题描述 投票:0回答:1

假设我想转换在 NodeJs 中使用 Promise 时出现的错误。

因此,例如在下面的代码中使用 request-promise 模块,我尝试在为某个 URI 制作

GET
时修改更简单的错误。

const options = {
  'uri': uri,
  'headers': { 'Accept-Charset': 'utf-8' }
}

rp.get(options)
  .catch(err => {
    throw {'statusCode': err.statusCode ? err.statusCode : 503}
  })

我是否可以像使用

return
时那样省略大括号?

node.js lambda promise arrow-functions
1个回答
1
投票

throw 是一个语句,因此不能在需要表达式的地方使用它。不带花括号的箭头函数版本需要一个表达式。你可以返回被拒绝的 Promise 而不是抛出:

rp.get(options)
  .catch(err => Promise.reject({'statusCode': err.statusCode ? err.statusCode : 503}));
© www.soinside.com 2019 - 2024. All rights reserved.