Javascript 如何对异步/等待函数进行回调

Javascript 如何对异步/等待函数进行回调,javascript,async-await,Javascript,Async Await,JavaScript中的异步函数读取一个文件,然后将结果放入特定的div中 async function loadContent( id, file ) { var response = await fetch( file ); var text = await response.text(); document.getElementById( id ).innerHTML = text; } 我现在这样使用它: loadContent("pagesmaxspan",

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");

如果不使用
setTimeout
,如何执行此操作?

将回调添加到函数
loadContent

async function loadContent( id, file, callBack = false) {
    var response = await fetch( file );
    var text = await response.text();
    document.getElementById( id ).innerHTML = text;

    //check if callback is function
    if (callBack && callBack.constructor && callBack.call && callBack.apply)
    {
        callBack();
    }
}
称之为

loadContent("pagesmaxspan", "../export/" + `<?php echo $randomid ?>` + ".variable",
 function(){
    var myvar = $("pagesmaxspan").textContent;
}); 
loadContent(“pagesmaxspan”和“./export/“+``+.”变量“,
函数(){
var myvar=$(“pagesmaxspan”).textContent;
}); 

当您调用
loadContent
时,那里没有
wait
,因此您只需从
async
函数获得一个承诺,代码执行就会继续


这就是为什么上面@Patrick的建议是有效的,将您以后需要执行的代码放在
中,然后
为@kshetline答案提供一个示例,这应该是有效的

loadContent("pagesmaxspan", "../export/" + `<?php echo $randomid ?>` + ".variable")
.then(() => {
   console.log($("pagesmaxspan").textContent);
})
loadContent(“pagesmaxspan”,“export/“+``+.”变量)
.然后(()=>{
log($(“pagesmaxspan”).textContent);
})

loadContent(…)。然后(callbackfunctionhere)
,还有
$(“pagesmaxspan”)
这会查找一个名为
pagesmaxspan
的元素,即
您是否真的将这样的元素添加到页面中,或者您是否打算使用类或其他选择器?真的,这么简单?!Thnaks,我来试试。不,不要在返回承诺的函数中添加回调参数。“检查回调是否为函数”-为什么不直接使用
typeof
?!这是正确的答案吗?我很困惑。。我现在应该用什么,@Mouser的例子很好地解决了。。他的解决方案有什么问题?@Miger IMHO,在异步函数中有一个回调(它像所有异步函数一样返回一个承诺),在大多数情况下是不好的做法。它增加了冗余和混乱。使用承诺,代码更短,更灵活:使用
鼠标器
代码本身就是错误的吗?我还是很困惑。。。
loadContent("pagesmaxspan", "../export/" + `<?php echo $randomid ?>` + ".variable",
 function(){
    var myvar = $("pagesmaxspan").textContent;
}); 
loadContent("pagesmaxspan", "../export/" + `<?php echo $randomid ?>` + ".variable")
.then(() => {
   console.log($("pagesmaxspan").textContent);
})