各位,
我有一个应用程序,允许您搜索电影和电视节目使用电影数据库API。在刷新页面后,该应用程序在Heroku上完全可用。有可能会有一种方法来加快应用程序的速度,并允许它在不进行初始刷新的情况下工作。
Heroku应用程序 https://the-cinematic-app.herokuapp.com/
Github存储库 https://github.com/kimanikelly/Cinematic
发布于 2020-05-07 22:22:12
问题在$.post('/token'...
in logic.js中。这里的问题在于ajax是异步的,这意味着继续执行JS代码。
这就是为什么apiKey = sessionStorage.getItem('token');
在第一次访问页面时没有时间获得价值,因为ajax没有完成他的工作。
我认为在$.post和$.ajax中使用异步假是不可取的,因为应用程序逻辑的很大一部分依赖于这个apiKey,所以我会将使用apiKey的每个.click
都放在$.post...
中。
解决方案2
我不想给您写异步/等待的概念,也不想混淆您,但是您可以这样做
1)添加异步->告诉您的函数是异步的,您需要它,所以您可以等待ajax的响应承诺。
$(document).ready(async () => {
2)等待ajax完成
var token = await $.post('/token').then();
然后可以在sessionStorage中设置或设置变量并使用它。
https://stackoverflow.com/questions/61668288
复制相似问题