无法访问console.log获取结果

时间:2018-06-18 01:59:53

标签: javascript reactjs react-native ecmascript-6

我正在尝试使用fetch()进行API调用。

我知道fetch()会返回一个Promise,应该使用.thenawait来处理。 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));
}

1 个答案:

答案 0 :(得分:0)

有时,如果您要获取大量数据,则需要一段时间才能记录下来。例如,在过去的项目中,我从中获取的 api 有接近 500 万条记录。花了几分钟才在控制台中看到任何内容。