js中async函数结合promise的小案例浅析


Posted in Javascript onApril 14, 2019

js中async函数结合promise的小案例浅析

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
.box{
height: 15px;
margin-top: 20px;
transform: translateX(-100%);
transition: all 1s linear;
}
button{
margin-top: 30px;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<button id="btn">点击开始</button>
<script>
const box=document.querySelectorAll(".box")
box.forEach((item,index)=>{
item.style.cssText=`width:${100+index*15}px;background:rgb(${Math.random()*255},${Math.random()*255},${Math.random()*255})`
})
    btn.onclick=async function(){
      for(let i=0;i<box.length;i++){
        await fn(box[i])
      }
    }
    function fn(el){
      return new Promise((resolve,reject)=>{
        el.style.transform=`translateX(0)`;
        el.addEventListener("transitionend",function(){
          resolve();//为什么调用这个成功函数
        })
      })
    }
  </script>
</body>
</html>
Javascript 相关文章推荐
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
Jquery跳到页面指定位置的方法
May 12 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
node.js中的fs.lstat方法使用说明
Dec 16 Javascript
Vue 2.0 服务端渲染入门介绍
Mar 29 Javascript
JavaScript箭头(arrow)函数详解
Jun 04 Javascript
5分钟快速掌握JS中var、let和const的异同
Sep 19 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
JavaScript实现10秒后再次获取验证码
Dec 02 Javascript
react如何快速设置文件路径别名
Apr 28 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
Apr 14 #Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
Apr 13 #Javascript
JS+CSS3实现的简易钟表效果示例
Apr 13 #Javascript
JS实现倒序输出的几种常用方法示例
Apr 13 #Javascript
JS实现马赛克图片效果完整示例
Apr 13 #Javascript
ES6入门教程之let、const的使用方法
Apr 13 #Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 #Javascript
You might like
多重?l件?合查?(一)
2006/10/09 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
php的socket编程详解
2016/11/20 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
javascript基本语法
2016/05/31 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
Python二分查找详解
2015/09/13 Python
python实现Floyd算法
2018/01/03 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
详解python 内存优化
2020/08/17 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
办护照工作证明范本
2014/01/14 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
文艺节目主持词
2015/07/06 职场文书
2016年清明节寄语
2015/12/04 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
python如何做代码性能分析
2021/04/26 Python
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
MySQL分区以及建索引的方法总结
2022/04/13 MySQL
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis