async函数用法

详细解释一下 async/await 的使用方法和优势? asyncawaitasync是一个强大的工具,使得 JavaScript 的异步编程更加简洁和可读。通过使用async函数和await表达式,开发者可以更清晰地管理异步操作的流程,并处理可能的错误。其优势在于提高了代码的可读性、简化了错误处理、允许顺序执行异步操作等。 阅读详情

目录

1.概念

2.本质

3.语法

4.特点

5.async基本使用

6.async里的await普通函数返回值

7.async里的await Promise函数成功返回值

 8.async里的await Promise函数失败返回值

 9.解决async里的await Promise函数失败后不执行下面内容


1.概念

真正意义上解决异步回调的问题,同步流程表达异步操作

2.本质

Generator的语法糖

3.语法

async function foo(){
    await 异步操作;
    await 异步操作;
}

4.特点

1、不需要像Generator去调用next 方法,遇到await等待,当前的异步操作完成就往下执行

2、返回的点是promise对象,可以用then 万法进行下一步操作

3、async取代Generator西数的星号*,await取Generator的yield

4、语意上更为明确,使用简单

5.async基本使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
  // async 基本用法
  async function foo(){
    return new Promise(resolve => {
      setTimeout(resolve,2000)
    })
  }

  async function testAsync(){
    console.log("开始执行",new Date().toTimeString())
    await foo();
    console.log("开始执行",new Date().toTimeString())
  }
  testAsync();

</script>
</body>
</html>

6.async里的await普通函数返回值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>async</title>
</head>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
  function test2(){
    return {code:200,data:{}}
  }
  // async 里面 await 返回值
  async function asyncPrint(){
    let res = await test2();
    console.log(res)
  }
  asyncPrint()
</script>
</body>
</html>

7.async里的await Promise函数成功返回值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>async</title>
</head>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
  // async 里面 await 返回值
  async function asyncPrint(){
    let res = await Promise.resolve({"key":"value"});
    console.log(res)
  }
  asyncPrint()
</script>
</body>
</html>

 8.async里的await Promise函数失败返回值

解决报错后面代码不执行,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>async</title>
</head>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
  // async 里面 await 返回值
  async function asyncPrint(){
    let res = await Promise.reject({"code":"400"});
    console.log(res)
  }
  asyncPrint()
</script>
</body>
</html>

 

 9.解决async里的await Promise函数失败后不执行下面内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>async</title>
</head>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
    async  function test(obj){
        return new Promise((resolve,reject)=>{
            // 模拟异常
            // key=1为异常,异常处理也用resolve()函数
            if(obj.key==1){
                resolve(false);
            }else{
                resolve({code:200})
            }

        })
    }
  // async 里面 await 返回值
  async function asyncPrint(){
    let res = await test({key:1});
    console.log(res)
    console.log("12313")
  }
  asyncPrint()

</script>
</body>
</html>

 

基于8086微机原理数字钟计时器系统设计 *单片机设计介绍,基于8086微机原理数字钟计时器系统设计。 阅读详情

相关推荐

论文阅读《Eigen-GNN: A Graph Structure Preserving Plug-in for GNNs》

好久没看论文了,感觉好生疏 关于这篇文章的大致脉络,这篇文章已经介绍过了。

且视他人之疑目如盏盏鬼火,大胆地去走你的夜路 461

async函数

一,

过客如期的博客 1万+

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 510

异步函数async

异步函数async

baidu_39009276的博客 1万+

STM32与威纶通触摸屏RS485通信实战:Modbus RTU协议与避坑指南

在工业自动化与嵌入式系统开发中,串行通信是实现设备间数据交换的基础技术。RS485总线凭借其差分信号传输、抗干扰能力强、支持多点通信及长距离传输等特性,成为工业现场广泛应用的物理层标准。其核心原理是利用一对双绞线进行平衡传输,有效抑制共模噪声。在协议层,Modbus RTU作为开放、简洁的主从式应用层协议,定义了统一的数据模型(如线圈、寄存器)和功能码,极大简化了不同厂商设备间的互操作性。结合STM32微控制器的UART外设与威纶通(Weinview)人机界面(HMI),可以构建稳定可靠的监控与控制系统。本

weixin_33925615的博客 327

测试dali协议的软件,DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议

DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议深圳聚积智能 夏先生 13246760327 QQ 349098308■IEC62386-102(V2.0)通过测试内容IEC62386-102/2.1/Test preambleIEC62386-102/3.1/Polarity testIEC62386-102/3.2/Maximum and minimum system v...

weixin_35343788的博客 1349

async的基本用法

1. async函数的基本形式 //函数声明 async function foo() {} //函数表达式 const foo = async function () {}; //对象的方法 let obj = { async foo() {} }; obj.foo().then(...) //Class 的方法 class Storage { constructor() { this.cachePromise = caches.open('avatars'); } async g.

qq_44953868的博客 3837

海康威视门禁考勤设备数据对接实战:从被动推送到主动拉取

本文深入探讨了海康威视门禁考勤设备数据对接的两种核心方案:HTTP推送与SDK主动拉取。文章对比了两种方式的适用场景、技术实现与优缺点,为开发者提供了从设备配置、代码编写到工程化部署的完整实战指南,帮助读者根据项目规模、网络环境及数据稳定性要求,做出最合适的技术选型。

weixin_29284657的博客 661

async正确用法

1 async 是用来修饰方法,如果单独出现,方法会警告,没有什么作用 CS1998:此异步方法缺少" await"运算符,将以同步方式运行。请考虑使用"await"运算符等待非阻止的API调用,或者使用" await Task.Run(…)"在后台线程上执行占用大量CPU的工作 async一般搭配await使用,如果我们只写async 来修饰方法会提示以上信息,原因也很简单,你只是告诉程序这是个异步方法,无论是否有返回信息,程序是不确定能否在主线程运算完并且异步可以正常运算完的情况,所以只能用主线程同步

我要的光荣哪怕只有一秒 5956

混合精度训练与推理:平衡性能与效率

在深度学习领域,模型的训练和推理通常需要大量的计算资源和时间。随着模型规模的不断增大,如大型语言模型、复杂的视觉模型等,对计算资源的需求也呈指数级增长。混合精度训练与推理技术应运而生,它通过在训练和推理过程中同时使用不同精度的数据类型,在保证模型性能的前提下,显著提高计算效率,减少内存占用。本文的目的是全面介绍混合精度训练与推理技术,包括其原理、实现方法、应用场景以及相关工具和资源,帮助读者深入理解并掌握该技术,从而在实际项目中更好地平衡性能与效率。

操作系统内核探秘的博客 1068

老 MacBook 部署 OpenClaw:比 Windows 更稳定

老款 MacBook 在运行 OpenClaw 时,Linux 系统相比 Windows 系统具有更好的稳定性和性能。本文将从多个维度对比 Linux 和 Windows 在老款 MacBook 上运行 OpenClaw 的表现,帮助您选择更合适的操作系统。

一键难忘的博客 2096

async函数的含义和用法

async函数的是什么? 一句话,async 函数就是 Generator 函数的语法糖。例有一个Generator依次读取两个文件; var fs = require('fs') const readeFile = function(filename){ return new Promise(function(resolve, reject){ fs.readFile(fileName, ...

qqhluckyi的博客 1564

国产化操作系统shell常用脚本

国产操作系统常用脚本:统信、麒麟。

Reyn_观极 592

async 函数的含义和用法

一、终极解决 异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题。 从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底。它们都有额外的复杂性,都需要理解抽象的底层运行机制。 异步I/O不就是读取一个文件吗,干嘛要搞得这么复杂?异步编程的最高境界,就是根本不用关心它是不是异步。 async 函数就是隧道尽头的亮光,很多人认为它是异步操作的终极解决方案。 二、async 函数是什么? 一句话,async

weixin_44647865的博客 3万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

vue中异步函数async和await的用法

先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数 async function timeout() {   return 'hello world'; }   语法很简单,就是在函数前面加上async关键字,来表示它是异步的,那怎么调用呢?async函数也是函数,平时我们怎么使用函数就怎么使用它,直接加括号调用就可以了,为了表示它没有阻塞它后面代...

很多时候犯错都是在不知情的情况下发生的 2337

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

es6的async函数的作用与用法

作用 async的作用就是将promise和生成器的效果融合了一下,promise主要用于解决回调地狱,也就是将异步代码同步封装。所以async同样能达到这个效果,而它达成效果依赖的则是生成器的特性。 创建async函数 创建async函数的方法很简单,在function前面加上async即可 async function fn() { } var fn = async function () { } document.onclick = async funct

weixin_44649210的博客 1759

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue中异步函数中async和await的用法

先说一下async的用法,它作为一个关键字放到函数前面,用于表示函数是一个异步函数,因为async就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 写一个async 函数: async function timeout() {   return 'hello world'; } 语法很简单,就是在函数前面加上async 关键字,来表示它是异步的,那怎么调用呢?async 函数也是函数,平时我们怎么使用函数就怎么使用它,直接加括号调用就可以了,为了表示它没有阻塞它后面代码的执行,我们

qq_42449963的博客 447

ES6 async函数 基本用法详解

简介 async函数也就一种异步解决方案,是在ES2017引入的,为了使得异步更加方便,它可以说是Generator函数的语法糖。 下面有一个例子,分别用async和Generator写,大家可以看下区别, //generator const gen = function* () { const result = yield readFile("哈哈",...

麻瓜哇哇哇的博客 978

async 函数的含义和用法及 async 函数与 Generator 函数 的区别是什么?

async 函数的含义和用法 、async 函数与 Generator 函数 的区别 及 使用示例

YHLSunshine的博客 672

es6 async函数的基本用法

async函数的基本用法 async函数返回一个 Promise 对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。 下面是一个例子。 async function getStockPriceByName(name) { const symbol = await getStockSymbol(na

歪脖先生的博客 7357

Vue中执行异步函数async和await的用法总结

Vue中执行异步函数async和await的用法总结: async:表示函数是异步执行。 await:表示当前函数先执行,执行完之后,再执行其他函数。 await用于等待一个promise对象,它只能在async函数中使用。

qq_30713721的博客 1838

理解异步函数async和await的用法

async作为一个关键字放在函数前面,表示该函数是一个异步函数,异步函数意味着该函数的执行不会阻塞后面代码的执行;而 await 用于等待一个异步方法执行完成

铁锤妹妹的博客 14万+

vue中执行异步函数async和await的用法

在开发中,可能会遇到两个或多个函数异步执行的情况,对于Vue中函数的异步函数执行做了一个小总结,如下: 异步执行使用async和await完成 created() { this.init() }, methods: { async init(){ await this.getList1(); th...

chenzhao635的专栏 956
上一篇: Promise-用法
下一篇: idea-java: 错误: 无效的源发行版:16
别浪呀
博客等级 码龄8年 1万+粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值