一眼看懂promise与async await的区别

2023-11-20

// promise方法
    let p1 = new Promise((resolve,reject) => {
        setTimeout(() => {
            resolve('我是p1')
        },4000)
    })
    let p2 = new Promise((resolve,reject) => {
        setTimeout(() => {
            resolve('我是p2')
        },200)
    })
    let p3 = new Promise((resolve,reject) => {
        setTimeout(() => {
            resolve('我是p3')
        },200)
    })
    // 想让p1完成后再执行P2再执行P3
    // 数量太多只能这么写
    p1.then((res) => {
        console.log(res);
        p2.then((res) => {
            console.log(res);
            p3.then((res) => {
                console.log(res);
            })
        })
    })
    
    //下面大神回答的挺好的
    p1.then((res)=>{ console.log(res) return p2 })
    .then((res)=>{ console.log(res) return p3 })
    .then((res)=>{ console.log(res) })



    // async  await语法糖
    let a1=()=>{
        return new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve('我是a1')
            },4000)
        })
    } 
    let a2=()=>{
        return new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve('我是a2')
            },40)
        })
    } 
    let a3=()=>{
        return new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve('我是a3')
            },40)
        })
    } 
    // 想让a1完成后再执行a2再执行a3
    //能避免回调
    async function asy(){
        await a1().then((res) => {console.log(res)});
        await a2().then((res) => {console.log(res)});;
        await a3().then((res) => {console.log(res)});;
    }
    asy();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一眼看懂promise与async await的区别 的相关文章

  • 使用Struts2的JSON插件来实现JSON数据传递

    想要实现此功能第一步需要Struts2的核心架包 第二步需要struts2 json plugin 2 3 30架包 在lib文件夹下可以找到 还是借用上次的笔记 来继续写 这个时候我们就不需要用到Servlet了 要使用到Action 配
  • Bootstrap4 模态对话框示例

  • <form>表单

    1 form表单
  • 打造高大上的Canvas粒子动画

    首先来看下我们准备要做的粒子动画效果是怎么样的 是这样 或者是这样 甚至是这样 很酷炫 那如何去实现类似上面的粒子动画甚至根据自己的喜好去做更多其他轨迹的动画呢 请看下面详细的讲解 技术选择 因为粒子数量很多 而且涉及到图像像素处理 所以这
  • 2020web前端面试整理

    背景 2020年是比较特殊的一年 由于新冠影响导致很多事情发生了变化 同时也改变了人们的一些常规习惯 就拿换工作来说 为了减少大家的出行和接触 线上视频 电话面试成了趋势 但是万变不离其宗 技术才是王道 下面是个人近期的一些面试经验和需要大
  • ajax请求不能下载文件

    最近在做文件下载 后台写了个控制层 直接走进去应该就可以下载文件 各种文件图片 excel等 但是起初老是下载失败 并且弹出下面的乱码 前台请求代码 fileexcel unbind click bind click function al
  • 对象转换为JSON数据格式&使用JQuery获取数据

    将对象转换为JSON数据格式 我们需要json lib 2 3 jdk15 jar架包 当然还需要其它架包 来实现对象转JSON数据格式 此架包提供两个类来实现转换 JSONObject fromObject object 将对象转换成js
  • web基础学习(十)CSS3之 @keyframes 、animation

    css3新增属性 keyframes 关键帧 可以帮助开发者不必依赖JavaScript 只使用css代码完成动画制作 那么如何使用 keyframes呢 这里有两个重要知识点 1 keyframes 定义关键帧 语法 keyframes
  • 理解React的虚拟DOM

    一 背景 React是一个用于构建用户界面的JavaScript库 区别于老的前端开发技术 其最核心的就是引入了虚拟DOM的技术 为了对React有一个比较全面和深入的了解 所以把最近学习React虚拟DOM的知识 做个笔记 仅供学习 二
  • 发布npm包-简要记录

    1注册账号 注册npm账号 需要邮箱 激活npm账号 npm账号注册成功以后会收到邮件 邮件中有个链接 点进去进行激活 2创建项目 npm init 创建项目 name 命名规则 不能包含大写字母 空格及下滑线 version 创建时候默认
  • 【JavaScript】正则表达式 VS 正规式

    在看JS之前没有怎么接触过正则表达式 只是知道有这么个东西 而在软考学习的时候 在编译原理这块有一个正规式 当时只知道这两个东西不是一个概念 具体哪里不同不太清楚 现在正好学到这里了 在此对比总结一下 一 正规式 一种表示正规集的工具 正规
  • CSS 学习笔记(基础)

    用来控制网页表现的语言 CSS Cascading Style Sheet 层叠样式表 然后我们继续看看 W3C 标准 结构 HTML 表现 CSS 行为 JavaScript CSS导入方式 选择器 属性 由于网页的框架结构是由HTML实
  • windows下配置Mysql-5.7.9服务

    第一步 从官方网站下载 mysql 5 7 9 winx64 zip 第二步 解压缩 在根目录下复制my default ini 改名为my ini 第三步 初始化mysql目录 bin mysqld initialize user mys
  • 一眼看懂promise与async await的区别

    promise方法 let p1 new Promise resolve reject gt setTimeout gt resolve 我是p1 4000 let p2 new Promise resolve reject gt setT
  • HTML、CSS、JavaScript分别实现什么功能?

    学习Web前端开发基础技术需要掌握 HTML CSS JavaScript 那么这三个都是分别实现什么功能的呢 下面和小编一起来看看吧 一 HTML是网页内容的载体 内容就是网页制作者放在页面上想要让用户浏览的信息 可以包含文字 图片 视频
  • hover时效果从中间向两边扩散

    header nav gt li position relative display inline block margin right 20px padding 0 5px font size 16px line height 76px
  • react(craco)移动端使用postcss-px-to-viewport自适应布局

    Craco 使用postcss px to viewport devDependencies craco craco 6 4 3 xianzhengquan postcss px 2 vw 0 0 1 postcss 8 3 0 peerD
  • <a>标签的超链接前面会自动加上当前(网站)地址

    当前 网站 地址是 fyh com 在代码里写 a 标签时 会自动在链接前添加 fyh com 例如写如下代码 a href www baidu com baidu a 在浏览器中点击链接会跳转至 fyh com www baidu com
  • 第8章 多媒体嵌入

    学习目标 了解视频 音频嵌入技术 能够总结HTML5视频 音频嵌入技术的优点 了解常用的视频文件格式和音频文件格式 能够归纳HTML5支持的视频和音频格式 掌握HTML5中视频的嵌入方法 能够在HTML5页面中添加视频文件 掌握HTML5中
  • 第8章 多媒体嵌入

    学习目标 了解视频 音频嵌入技术 能够总结HTML5视频 音频嵌入技术的优点 了解常用的视频文件格式和音频文件格式 能够归纳HTML5支持的视频和音频格式 掌握HTML5中视频的嵌入方法 能够在HTML5页面中添加视频文件 掌握HTML5中

随机推荐

  • 机器ubuntu20.04和ubuntu16.04在局域网下ros通信

    多台机器ros局域网通信 试过在ubuntu16 04的机器人和ubuntu20 04下安装不同版本ros通信 测试成功 首先保证两台机器在同一个局域网内 可以相互ping通 1 查看ip地址 ifconfig 2 ssh远程登录机器人计算
  • Qt界面制作简单教程,调用python代码

    利用Qt5design或Qt5Creator制作界面的布局 包括设置按钮的个数 布局和大小等 注意记得为每个按钮添加槽函数 保存生成 ui文件 利用pyuic5 xxx ui gt xxx py或pyuic5 xxx ui o xxx py
  • 最全的雅思8000词汇pdf_助力9分

    词汇是雅思学习的基础 对此我们特别设立 9分词汇 小栏目 专门分享词汇相关干货 包括但不限于 高频词解析 场景词汇总结 熟词辟义 同义替换等等 如果你还有其他有关词汇想要学习了解的 欢迎给我们留言 一定及时为大家补充 雅思听力part 1
  • html点击收缩展开菜单栏,jquery实现点击向下展开菜单项(伸缩导航)效果

    本文实例讲述了jquery实现点击向下展开菜单项 伸缩导航 效果 分享给大家供大家参考 具体如下 这里演示基于jquery打造的向下展开的多级导航条效果 纵向垂直排列 风格非常的简洁 鼠标点击时候展开菜单的二级项 再次点击的时候又向上合拢
  • Spring事务传播属性

    参考文献 Spring事务传播属性和隔离级别 https www cnblogs com eunice sun p 11024584 html spring事务传播机制总结 https blog csdn net m18330808841
  • GBA编程和汉化常用软件汇总

    内容来自GBA吧中的痴狂小黑 本人只是做个汇总和搬运 1 简易图片导入导出套装 PicSimpleImEx AutoPicRock Ver1 0 这两个软件是用C 写的 想要用 先装dotNetFx40 Full x86 x64 exe 然
  • 算法问题实战策略

    算法问题实战策略 基本信息作者 韩 具宗万 译者 崔盛一出版社 人民邮电出版社ISBN 9787115384621上架时间 2015 2 4出版日期 2015 年3月开本 16开页码 738版次 1 1 内容简介 算法问题实战策略 本书收录
  • 手动搭建torch2.0环境

    一 下载相关whl 1 从Previous PyTorch Versions PyTorch检查相互版本是否兼容 否则会出现无法使用cuda的问题 2 从https download pytorch org whl torch stable
  • 阶乘质因子分解(唯一分解定理)

    阶乘质因子分解 题目描述 对N 进行质因子分解 输入输出格式 输入格式 输入数据仅有一行包含一个正整数N N lt 10000 输出格式 输出数据包含若干行 每行两个正整数p a 中间用一个空格隔开 表示N 包含a个质因子p 要求按p的值从
  • Python JS逆向篇(一)

    Python JS逆向篇 一 效果实现 思路 最后一步 逆向 p a HmacSHA256 t s a state commonStore cupid sign key JS实现 py实现 先苦后甜 逆向主题 51job请求头headers
  • 【NodeJS】Express框架快速入门

    简介 作为前端开发 Nodejs已经成了很多公司对我们这一岗位的硬性要求 而 Express 框架则是其中知名度最高 也是最受欢迎的Nodejs开发框架 它帮助我们封装了Nodejs底层的API 屏蔽了大量的繁琐的细节 让我们只需要关注业务
  • Mybatis框架解析

    一 Mybatis框架简介 MyBatis框架是一个开源的数据持久层框架 它的内部封装了通过JDBC访问数据库的操作 支持普通的SQL查询 存储过程和高级映射 几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索 MyBatis作为
  • PAM机制

    一 PAM简介 Linux PAM linux可插入认证模块 是一套共享库 使本地系统管理员可以随意选择程序的认证方式 换句话说 不用 重新编写和 重新编译一个包含PAM功能的应用程序 就可以改变它使用的认证机制 这种方式下 就算升级本地认
  • 无监督低照度图像增强网络ZeroDCE和SCI介绍

    目录 简介 Zero DCE 算法介绍 模型代码 无监督loss介绍 小结 Self Calibrated Illumination SCI 模型介绍 无监督loss介绍 小结 总结 简介 当前有较多深度学习的方法来做图像效果增强 但多数都
  • 量化投资学习-31:如何评判专家的战法是否真的有效还是瞎蒙?

    每逢牛市 都会冒出各种股神 各种专家 在牛市大趋势的东风下 各种专家鱼龙混杂 如何如何评判专家的战法是否真的有效还是瞎蒙 所谓牛市 就是高点越来越高 即使在任何一个时间点买入 短暂的亏损后 股价也再创新高 一样能赚钱 因此 在牛市的大势下
  • 三个闭环负反馈PID调节系统:电流环、速度环和位置环的关系

    三个闭环负反馈PID调节系统 电流环 速度环和位置环的关系 伺服电机为了达到生产的精准控制 电机一般采用三环控制 这主要是为了使伺服电机系统形成闭环控制 所谓三环就是3个闭环负反馈PID调节系统 电压映射电流变化 电流映射转矩大小 转矩大小
  • Sql语句中的DML语句

    一 什么是DML语句 DML语句就是数据库操作语句 二 DML语句的分类 Insert 插入 Update 修改更新 Delete 删除 Select 选择 三 insert语句 Delete from 表名名称 where 条件 DELE
  • windows下配置Mysql-5.7.9服务

    第一步 从官方网站下载 mysql 5 7 9 winx64 zip 第二步 解压缩 在根目录下复制my default ini 改名为my ini 第三步 初始化mysql目录 bin mysqld initialize user mys
  • 在渗透测试中,扫描器原理是什么

    在渗透测试中 扫描器原理是什么 渗透测试中的扫描器是一种自动化工具 用于识别目标系统中的漏洞 弱点或配置错误 扫描器通过发送特定的网络请求或使用其他技术手段来检查目标系统的安全性 并生成报告以供分析和修复 以下是扫描器的一般原理 1 信息收
  • 一眼看懂promise与async await的区别

    promise方法 let p1 new Promise resolve reject gt setTimeout gt resolve 我是p1 4000 let p2 new Promise resolve reject gt setT