首页 > 解决方案 > 如何回调异步/等待功能

问题描述

我在 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

标签: javascriptasync-await

解决方案


当您调用时loadContent,那里没有await,所以您只需从async函数中返回一个 Promise,然后代码执行就会继续。

这就是上面@Patrick 的建议有效的原因,将之后需要执行的代码放在then.


推荐阅读