js怎么执行完前一条语句再执行后面的语句


$("#calc_hint_small").show();
        $("#content").empty();
        $(".accordion").empty();

目的是第一句话先执行完,再执行后面的语句,目前是第一句话还没执行,后面都执行完了
有什么办法吗

$("#calc_hint_small").show()你指的是某个dom显示还没完全然后剩下的命令又开始执行了是吗,两种方法。

  1. 第一种:如果你能够知道它显示时有没有什么额外的属性表示它显示完全了,那就可以使用promise。
    new Promise((resolve, reject) => {
      $("#calc_hint_small").show();
      if ("判断它显示完全的条件写在这里") {
        resolve();
      }
    }).then(() => {
      $("#content").empty();
      $(".accordion").empty();
    });
  1. 第二种,你也不知道它怎么判断,但是你知道它显示完全的大概时间,比如是1秒,那我们只要设置一个计时等待即可
    new Promise((resolve, reject) => {
      $("#calc_hint_small").show();
      setTimeout(() => {
        resolve();
      }, 1000);
    }).then(() => {
      $("#content").empty();
      $(".accordion").empty();
    });

js Promise与async/await用法详解:https://blog.csdn.net/weixin_43877799/article/details/121536943

得看看具体的方法,如果show()方法里有调异步的接口(比如异步ajax),那么就会出现前面的没走完就会走后面的

async ,await . promise都可以 。没有异步 的情况下 就是 自上而下执行

1.使用callback方法里面去调用下面方法, show 函数执行完之后,要执行的函数

语法$ ("#calc_hint_small").show(speed,callback)

2.使用定时器包裹后执行的