当前位置: 首页 > news >正文

async/await 的用法

一、async和await定义

async 是异步的意思,而 await 是等待的意思,await 用于等待一个异步任务执行完成的结果。

1.async/await 是一种编写异步代码的新方法(以前是采用回调和 promise)。

2. async/await 是建立在 promise 的基础上。

3. async/await 像 promise 一样,也是非阻塞的。

4. async/await 让异步代码看起来、表现起来更像同步代码。

使用场景

在实际开发中,如果你遇到了等第一个请求返回数据完,再执行第二个请求(可能第二个请求要传的参数就是第一个请求接口返回的数据)这个问题。

代码

const datas = async ()=> {await request.selectPies(Route.path.split('/')[3]).then(res=>{states.ids = res.obj})//查询发帖子用户信息await request.selectUsers(states.ids).then(res=>{console.log(res.obj)})}
datas()

二、async

async function testAsync(){		//带async关键字的函数,是声明异步函数,返回值是promise对象,return 'Hello async';
}
console.log(testAsync());	//打印结果:Promise { 'Hello async' }

三、获取异步函数的数据

方法1:

async function testAsync(){		return 'Hello async';
}
var result = testAsync();
result.then((data)=>{console.log(data);			//Hello async
})

方法2:

function getData(){return 'Hello async';}
async function test(){var d = await getData();	//await 是等待异步方法执行完成,可以获取异步方法里面的数据,但是必须得用在异步方法里面console.log(d);
}console.log(getData());			// Hello async
test()

四、应用场景

先请求接口1,获取到接口1返回结果后,将其作为接口2的参数,再去请求接口2

function getDataF(){return 3;
}function getDataS(a){return a+a;
}async function getD(){var a = await getDataF()	//接口1var b = await getDataS(a)	//接口2console.log(b);				//接口2返回的值
}getD()

五、注意事项

1、async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成

2、await只能在async函数中使用,不然会报错

3、async函数返回的是一个状态为fuifilled的Promise对象

4、类似于排队买东西,一个人结完账后才能轮到下个人,在async函数中,await规定了异步操作只能一个一个排队执行,从而达到用同步方式,执行异步操作的效果

相关文章:

async/await 的用法

一、async和await定义 async 是异步的意思,而 await 是等待的意思,await 用于等待一个异步任务执行完成的结果。 1.async/await 是一种编写异步代码的新方法(以前是采用回调和 promise)。 2. async/await 是建立在 promise 的基础…...

JAVA面试汇总总结更新中ing

本人面试积累面试题 基础RocketMQSpring登录技能操作线程事务微服务JVMKAFKAMYSQLRedislinux 基础 1.面向对象的三个特征 封装,继承,多态,有时候也会加上抽象。 2.多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根…...

vue-利用属性(v-if)控制表单(el-form-item)显示/隐藏

表单控制属性 v-if 示例&#xff1a; 通过switch组件作为开关&#xff0c;控制表单的显示与隐藏 <el-form-item label"创建数据集"><el-switch v-model"selectFormVisible"></el-switch></el-form-item><el-form-item label&…...

数据结构-邻接矩阵

介绍 邻接矩阵&#xff0c;是表示图的一种常见方式&#xff0c;具体表现为一个记录了各顶点连接情况的呈正方形的矩阵。 假设一共有以下顶点&#xff0c;其连接关系如图所示 那么&#xff0c;怎么表示它们之间的连接关系呢&#xff1f; 我们发现&#xff0c;各条边所连接的都…...

基于CNN-GRU-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 CNN&#xff08;卷积神经网络&#xff09;部分 4.2 GRU&#xff08;门控循环单元&#xff09;部分 4.3 Attention机制部分 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版…...

Docker部署Halo容器并结合内网穿透实现公网访问本地个人博客

文章目录 1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可参考已安装Docker步骤&#xff1a;1.2 在Docker中部署Halo 2. Linux安装Cpolar2.1 打开服务器防火墙2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址4. 固定Halo公网地址 本文主要介绍如何在CentOS 7系统使…...

纯css实现文字左右循环滚动播放效果

思路&#xff1a;由两个span模块组成&#xff0c;第一个为空的span内容&#xff0c;为的是实现第二个span内容缓慢出现的效果。 代码如下&#xff1a; <div class"scrollingStyle"><span class"first-marquee"></span><span class&q…...

【Java EE初阶二十二】https的简单理解

1. 初识https 当前网络上,主要都是 HTTPS 了,很少能见到 HTTP.实际上 HTTPS 也是基于 HTTP.只不过 HTTPS 在 HTTP 的基础之上, 引入了"加密"机制&#xff1b;引入 HTTPS 防止你的数据被黑客篡改 &#xff1b; HTTPS 就是一个重要的保护措施.之所以能够安全, 最关键的…...

系统学习Python——装饰器:类装饰器-[跟踪对象接口:基础知识]

分类目录&#xff1a;《系统学习Python》总目录 文章《系统学习Python——装饰器&#xff1a;类装饰器-[单例类&#xff1a;基础知识]》的单例示例阐明了如何使用类装饰器来管理一个类的所有实例。类装饰器的另一个常用场景是为每个生成的实例扩展接口。类装饰器基本上可以在实…...

go-redis 使用 redis 6.0.14 版本错误: consider implementing encoding.BinaryMarshaler

使用方法 err : bp.data.redis.Get(ctx, policyKey).Scan(&result)起初在 redis 5.x.x 版本并没有遇到错误&#xff0c;但是在切换 redis 实例之后就出现了错误&#xff08;他们之间只是版本不同&#xff09;。 修复方法 看错误日志的描述&#xff0c;大概含义就是需要我们…...

计网 - 域名解析的工作流程

文章目录 Pre引言1. DNS是什么2. 域名结构3. 域名解析的工作流程4. 常见的DNS记录类型5. DNS安全6. 未来的发展趋势 Pre 计网 - DNS 域名解析系统 引言 在我们日常使用互联网时&#xff0c;经常会输入各种域名来访问网站、发送电子邮件或连接其他网络服务。然而&#xff0c;我…...

普中51单片机学习(EEPROM)

EEPROM IIC串行总线的组成及工作原理 I2C总线的数据传送 数据位的有效性规定 I2C总线进行数据传送时&#xff0c;时钟信号为高电平期间&#xff0c;数据线上的数据必须保持稳定&#xff0c;只有在时钟线上的信号为低电平期间&#xff0c;数据线上的高电平或低电平状态才允许…...

智能风控体系之供应链业务模式

供应链金融是一种针对中小企业的新型融资模式&#xff0c;将资金流有效整合到供应链管理的过程中&#xff0c;既为供应链各环节企业提供贸易资金服务&#xff0c;又为供应链弱势企业提供新型贷款融资服务&#xff0c;以核心客户为依托&#xff0c;以真实贸易背景为前提&#xf…...

最少停车数(C 语言)

题目描述 特定大小的停车场&#xff0c;数组cars[]表示&#xff0c;其中1表示有车&#xff0c;0表示没车。车辆大小不一&#xff0c;小车占一个车位&#xff08;长度1&#xff09;&#xff0c;货车占两个车位&#xff08;长度2&#xff09;&#xff0c;卡车占三个车位&#xf…...

MAC M1安装vmware和centos7虚拟机并配置静态ip

一、下载vmware和centos7镜像 1、VMWare Fusion 官网的下载地址是&#xff1a;下载地址 下载好之后注册需要秘钥&#xff0c;在官网注册后使用免费的个人秘钥 2、centos7 下载地址&#xff1a; https://biosyxh.cn:5001/sharing/pAlcCGNJf 二、虚拟机安装 直接将下…...

java 课程签到管理系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

一、源码特点 java 课程签到管理系统是一套完善的java web信息管理系统 采用serlvetdaobean&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0…...

Linux——网络通信TCP通信常用的接口和tcp服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符&#xff0c;他的作用就是打开一个网络通讯端口&#xff0c;返回的这个描述符其实就可以理解为一个文件描述符&a…...

【web | CTF】反序列化打法

天命&#xff1a;因为是php的上古版本&#xff0c;所以本机无法复现&#xff0c;只能用归纳法解决&#xff0c;就是题海战术找相同点&#xff0c;fuzz来测试新的题目 题目一&#xff1a;绕过正则和绕过__wakeup函数&#xff0c;private属性 【web | CTF】攻防世界 Web_php_uns…...

如何在Linux搭建Inis网站,并发布至公网实现远程访问【内网穿透】

如何在Linux搭建Inis网站&#xff0c;并发布至公网实现远程访问【内网穿透】 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.…...

YOLOv9来了! 使用可编程梯度信息学习你想学的内容, v7作者新作!【文献速读】

YOLOv9文献速读&#xff0c;本文章使用 GPT 4.0 和 Ai PDF 工具完成。 文章地址&#xff1a;https://arxiv.org/pdf/2402.13616.pdf 文章目录 文章简介有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课题在领域内值得关注的研究员&#xff1f;论文试图解决什么问题&a…...

【异常】设备时间戳时区偏差问题分析与解决(实际应为上午11点,但数据库存储为晚上7点)

一、问题现象 在生产环境中发现,IoT 设备上报的对话记录时间存在异常。具体表现为: 实际时间:2026年3月30日 上午 11:00 数据库存储时间:2026年3月30日 晚上 19:00 时间偏差:约 8 小时 数据库查询示例: -- 实际应为上午11点,但数据库存储为晚上7点 dialog_time: 2026-…...

5个维度解决经典游戏兼容性痛点:DxWrapper的兼容性引擎创新价值

5个维度解决经典游戏兼容性痛点&#xff1a;DxWrapper的兼容性引擎创新价值 【免费下载链接】dxwrapper Fixes compatibility issues with older games running on Windows 10 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi i…...

掌握Python自动化抢票:开源工具助你高效获取演唱会门票

掌握Python自动化抢票&#xff1a;开源工具助你高效获取演唱会门票 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 在演出票务竞争日益激烈的当下&#xff0c;手动抢票已难以应对毫秒级的抢票环境…...

Java开源项目—上门家政系统源码

首页与服务展示LBS定位服务&#xff1a; 系统自动定位用户所在城市&#xff08;如“广州”&#xff09;&#xff0c;并根据地理位置推荐附近的服务资源&#xff0c;确保服务的时效性。多品类服务入口&#xff1a; 首页采用图标矩阵展示&#xff0c;涵盖家庭保洁、上门维修、家电…...

告别OpenAI依赖:用智谱AI与轻量本地模型构建RAG评估实战

1. 为什么需要替代OpenAI的RAG评估方案 当我们在构建RAG&#xff08;检索增强生成&#xff09;系统时&#xff0c;评估环节至关重要。传统的Ragas框架默认使用OpenAI的GPT模型进行评估&#xff0c;但这会带来几个实际问题&#xff1a; 首先是访问稳定性问题。由于网络环境差异…...

别再死记硬背TTS原理了!用Python+TensorFlow复现一个简易Deep Voice,从音素到语音全流程拆解

用PythonTensorFlow实战Deep Voice&#xff1a;从音素到语音的完整实现指南 当你第一次听到计算机生成的语音时&#xff0c;是否好奇过这背后的魔法是如何实现的&#xff1f;现代文本转语音(TTS)系统已经能够产生几乎与真人无异的语音&#xff0c;而Deep Voice作为早期端到端TT…...

Android WebView视频播放全屏实战:从黑屏到完美适配的完整解决方案

Android WebView视频全屏播放的深度优化指南&#xff1a;从黑屏修复到多机型适配 当你在WebView中嵌入视频播放功能时&#xff0c;是否遇到过这样的场景&#xff1a;用户点击全屏按钮后画面突然黑屏&#xff0c;或者在某些机型上视频声音无法正常停止&#xff1f;这些问题往往…...

Mac Mouse Fix终极指南:让你的第三方鼠标在macOS上焕发新生

Mac Mouse Fix终极指南&#xff1a;让你的第三方鼠标在macOS上焕发新生 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为macOS上第三方鼠标功能受限而…...

文脉定序系统处理多语言语义排序实战:跨语言检索效果展示

文脉定序系统处理多语言语义排序实战&#xff1a;跨语言检索效果展示 你有没有遇到过这样的烦恼&#xff1f;想找一份关于“机器学习”的日文资料&#xff0c;却只能用中文关键词去搜&#xff0c;结果要么搜不到&#xff0c;要么搜出来的东西完全不对路。或者&#xff0c;你手…...

掌握Calibre电子书管理:从格式转换到高级编辑的完整指南

掌握Calibre电子书管理&#xff1a;从格式转换到高级编辑的完整指南 【免费下载链接】calibre The official source code repository for the calibre ebook manager 项目地址: https://gitcode.com/GitHub_Trending/ca/calibre Calibre是一款功能强大的开源电子书管理器…...