javascript - 如何回调异步/等待功能
问题描述
我在 JavaScript 中的异步函数读取文件,然后将结果放入特定的 div。
async function loadContent( id, file ) {
var response = await fetch( file );
var text = await response.text();
document.getElementById( id ).innerHTML = text;
}
我现在这样使用它:
loadContent("pagesmaxspan", "../export/" + `<?php echo $randomid ?>` + ".variable");
但是当我尝试获取变量时它不起作用
var myvar = $("pagesmaxspan").textContent; // <<--- this does not work
延迟它看起来像这样:
var myvar = "";
setTimeout(function() {
myvar = $("pagesmaxspan").textContent;
}, 100);
我怎么能不使用来做到这一点setTimeout
?
解决方案
当您调用时loadContent
,那里没有await
,所以您只需从async
函数中返回一个 Promise,然后代码执行就会继续。
这就是上面@Patrick 的建议有效的原因,将之后需要执行的代码放在then
.
推荐阅读
- vba - Microsoft Access 2016 使用 SQL 汇总和合并表
- vb.net - 本地调光与分配给函数名称 (VB.NET) 的性能影响
- c# - 从与 .dll 相同的目录加载 json
- java - 没有容量限制的基于监视器的队列
- php - 当用户登录和用户注销时如何回显它?
- python - 如何手动检查屏幕上的行,在新列中添加值?
- python-3.x - 将 max_solutions 和 max_seconds 参数添加到 Python MIP 优化模型的方法是什么?
- c++ - CMake 在 Brew 上找不到 OpenSSL
- javascript - 从 API 获取数据后访问数组元素时显示未定义
- python - Selenium 将段落列表附加到单个变量