javascript - JavaScript:为什么这个 Promise 没有返回值?
问题描述
我坚持使用一个应该从 API 获取数据然后返回预定义类型的数组的函数。但是,我总是会收到一条错误消息,指出A function whose declared type is neither 'void' nor 'any' must return a value.
我真的不明白为什么会出现这条消息,因为我的函数中有一个返回语句,即使在获取数据时发生错误:
export async function queryOpenCage(query: string): Promise<MarkerPoint[]> {
const {opencageApiKey}: ClientSettings = JSON.parse(
document.getElementById(ElementID.Settings)!.textContent!
)
const fetchURL = `https://api.opencagedata.com/geocode/v1/json?key=${opencageApiKey}&q=${query}&limit=5&pretty=1`
const resultItems: MarkerPoint[] = []
fetch(fetchURL)
.then(response => {
return response.json()
})
.then(json => {
const items = json.results.map((res: any) => {
return {
lat: res.geometry.lat,
lng: res.geometry.lng,
address: res.formatted
}
})
return resultItems.push(...items)
})
.catch(error => {
return []
})
}
任何帮助或建议都非常感谢!
解决方案
fetch(fetchURL)
应该
return fetch(fetchURL)
推荐阅读
- web - webrtc 有问题,每次通话都无法连接
- python - 如何处理类似对象的python dict中的名称冲突?
- mysql - 我需要两个表中都不匹配的记录
- python-3.x - 在 setupUI 中连接 QListWidgetItem
- react-native - 为什么使用 devise-token-auth 从 React Native 获取到 Nginx + Phusion Passenger + Rails 5,只响应 401?
- reactjs - 从函数返回一个 React 组件并为其提供道具
- css - !important 宽度无故改变
- performance - 阅读摘要报告中的吞吐量
- r - 统计信息中 SSasym() 函数的结构
- matlab - 在 Matlab/Simulink 模型中缓存或记住最近生成的 UITree