利用then会期待上一个Promise的解决的个性来模仿一个申请loading。
效果图

CSS

      .div {        width: 0%;        padding: 10px 0;        background-color: violet;        text-align: center;        transition: width 1s;      }

JavaScript

     function sleep(delay = 1000) {      return new Promise((resolve, reject) => {        // 提早期待,模仿异步申请        setTimeout(() => {          resolve();        }, delay);      });    }    (async function show() {      let args = [        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,      ];      let div = document.querySelector('.div');      for (let i = 0; i < args.length; i++) {        await sleep();        // 获取进度,i=0 所以  +1  除以总长度 乘以 100        let progress = Math.round(((i + 1) / args.length) * 100);        // 赋值给元素的宽度和给渲染元素进度        div.style.width = progress + '%';        div.innerHTML = progress + '%';      }    })();