gpt4 book ai didi

javascript - React-Native 的休眠功能?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:36:27 25 4
gpt4 key购买 nike

因此,我正在尝试通过 Google Places API 在 React Native 中获取给定某个位置的所有“地点”。问题是在第一次调用 API 后,Google 只返回 20 个条目,然后返回一个 next_page_token,附加到同一个 API 调用 url。因此,我再次请求立即获取接下来的 20 个位置,但是在 token 实际生效之前会有一小段延迟(1-3 秒),因此我的请求出错。

我试过:

this.setTimeout(() => {this.setState({timePassed: true})}, 3000);

但应用程序完全忽略了它...有什么建议吗?

更新

我在我的 componentWillMount 函数中执行此操作(当然是在定义变量之后),并在此行之后立即调用 setTimeout

axios.get(baseUrl)
.then((response) => {
this.setState({places: response.data.results, nextPageToken: response.data.next_page_token });

});

最佳答案

据我了解,您正在尝试根据另一次提取的结果进行一次提取。所以,您的解决方案是使用 TimeOut 来猜测请求何时完成,然后执行另一个请求,对吗?

如果是,那么这可能不是解决您问题的最佳方法。但是下面的代码是我如何使用超时:

// Without "this"
setTimeout(someMethod,
2000
)

我会采取的方法是等到提取完成,然后我会使用不同的参数再次使用回调到相同的提取,在您的情况下,nextPageToken。我使用 ES7 async & await 语法执行此操作。

// Remember to add some stop condition on this recursive method.
async fetchData(nextPageToken){
try {
var result = await fetch(URL)
// Do whatever you want with this result, including getting the next token or updating the UI (via setting the State)
fetchData(result.nextPageToken)
} catch(e){
// Show an error message
}
}

如果我误解了什么或者你有任何问题,请随时提问!

希望对你有帮助。

关于javascript - React-Native 的休眠功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41254029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com