AX0101_4413 2021-08-19 14:43 采纳率: 95.7%
浏览 132
已结题

js如何让函数依次执行

这是我的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    function f(){
        setTimeout(function (){
            let a=document.createElement("div");
            a.id="AX";
            document.body.append(a);
        },1000);
    }
    function g(){
        document.getElementById("AX").innerHTML="abc";
    }

    f();
    g();
</script>

</body>
</html>

它本该输出abc,但是没有。因为g在f之前执行了。
我希望g在f之后执行。

  • 写回答

5条回答 默认 最新

  • CSDN专家-showbo 2021-08-19 14:53
    关注

    要做成回调的形式执行g函数,要不f中添加div是延时执行的,执行g的时候并没有生成dom出错了
    有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

    
    <script>
        function f(callback) {
            setTimeout(function () {
                let a = document.createElement("div");
                a.id = "AX";
                document.body.append(a);
                callback();/////
            }, 1000);
        }
        function g() {
            document.getElementById("AX").innerHTML = "abc";
        }
        f(g);//这样调用就没问题了
    </script>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月19日
  • 创建了问题 8月19日