我正在尝试使用fetch()进行API调用。
我知道fetch()会返回一个Promise,应该使用.then
或await
来处理。 result.json()
遵循本教程http://www.reactnativeexpress.com/networking的相同内容,我带着fetchRoute()
函数到达。函数内的console.log(route)
永远不会被调用。
我试图返回console.log(fetchRoute(this.state.userLocation, text))
,但它仍然返回了Promise。
我在Stack Overflow上阅读了另一个问题(对不起,找不到链接了),他们说要尝试这样的事情:
getRouteHandler = (text) => {
fetchRoute(this.state.userLocation, text).then(json => console.log(json));
但是,我无法记录获取结果。谁知道会出现什么问题?以下是相关代码:
const fetchRoute = async (ori, dest) => {
let origin = ori.latitude+','+ori.longitude;
let destination = encodeURIComponent(dest);
const key = "MyAPIKey";
const URL = `https://maps.googleapis.com/maps/api/directions/json?origin=${origin}&destination=${destination}&key=${key}`;
try{
const response = await fetch(URL)
const route = await response.json()
console.log(route)
return route
}catch(e){
return e
}
}
export default class App extends Component{
state = {
userLocation: null,
route: [],
}
getRouteHandler = (text) => {
fetchRoute(this.state.userLocation, text).then(json => console.log(json));
}
答案 0 :(得分:0)
有时,如果您要获取大量数据,则需要一段时间才能记录下来。例如,在过去的项目中,我从中获取的 api 有接近 500 万条记录。花了几分钟才在控制台中看到任何内容。