【发布时间】:2019-07-25 17:28:18
【问题描述】:
我有一个箭头函数,它从 api 调用返回一些数据。我想把它包在一个 try catch 块中,比如
const fetchEmployees = () => (
try{
fetch('http://localhost:6873/api/values', {
method: 'GET',
headers: {
'content-type': 'application/json'
}
})
.then(response => response.json())
.then(names => { return names })
} catch (error) {
return error;
}
)
我怎么能这样做?我拥有的完美工作箭头功能是
const fetchEmployees = () => (
fetch('http://localhost:6873/api/values', {
method: 'GET',
headers: {
'content-type': 'application/json'
}
})
.then(response => response.json())
.then(names => names )
)
【问题讨论】:
-
为什么不简单地在
fetch上使用catch? -
你想捕捉什么错误。 .json() 失败?
-
实际问题是您使用括号
()而不是大括号{}作为箭头函数的主体 - 它仅适用于第二种情况,因为body 是一个单一的表达式。但你也应该.catch拒绝承诺。 -
你真的想
return error来自catch块吗?这不是一个好主意,你应该处理那里的错误而不是卖掉它。
标签: javascript function ecmascript-6 promise arrow-functions