Throwing errors without curly brackets in lambdas/arrow-functions
本问题已经有最佳答案,请猛点这里访问。
假设我想在nodejs中使用承诺时转换一个错误。
例如,在下面的代码中使用request promise模块,我试图在为某个URI生成
1 2 3 4 5 6 7 8 9 | const options = { 'uri': uri, 'headers': { 'Accept-Charset': 'utf-8' } } rp.get(options) .catch(err => { throw {'statusCode': err.statusCode ? err.statusCode : 503} }) |
我是否可以像使用
throw是一个语句,因此不能在需要表达式的地方使用它。没有大括号的箭头函数版本需要表达式。你可以退回一个被拒绝的承诺,而不是放弃:
1 2 | rp.get(options) .catch(err => Promise.reject({'statusCode': err.statusCode ? err.statusCode : 503})); |