​ 1、Promise 、axios 、async和await

news/2024/5/5 10:31:40/文章来源:https://blog.csdn.net/quanmeiren/article/details/130497171

1.0 同步与异步 【了解】

  • 同步: 具有阻塞性

  • 异步: 异步代码同时执行,谁跑的快谁就先执行完,异步与同步相遇,先让同步执行完毕后再执行异步代码

  • 异步分类:(执行完成时间不确定或代码执行时间过长)

    • 定时器

    • 事件处理函数

    • 异步ajax

2.0 Promise -- 解决回调地狱 【掌握】

2.1什么是Promise?

他是一个构造函数,通过new 创建实例使用,他有3个状态,进行中、已成功、已失败,状态一旦确定就凝固了

2.2 语法结构

 new Promise((resolve,reject)=>{ // 成功回调,失败的回调// 处理异步的内容if(得到的异步结果===true){// 符合你的预期resolve(成功返回的数据)}else{reject('失败的错误')}})
.then((data)=>{// data 就是你成功返回的数据})
.catch((err)=>{// err 就是你失败后的错误})
​

 

2.3 Promise的其他方法

Promise.all() :

同时请求多个Promsie任务,只有全部成功才会成功,如果有一个失败那就全部失败

const p1 = new Promise(resolve=>{// 异步操作setTimeout(()=>{resolve()},1000)
})
const p2 = new Promise((resolve,reject)=>{// 异步操作setTimeout(()=>{reject('失败')},1500)
})
Promise.all([p1,p2])
.then(res=>{// 只有全部成功才会成功,如果一个失败,就全部失败
})
.finally(() => {console.log('你是最后的');
})

 

Promise.race() :

同时请求多个Promise任务,返回跑的最快的那个,无论成功与否

// race 赛跑const p11 = new Promise(resolve => {setTimeout(() => {resolve('p11 success')}, 1800)})const p12 = new Promise(resolve => {setTimeout(() => {resolve('p12 成功')}, 1500)})const p13 = new Promise((resolve, reject) => {setTimeout(() => {reject('p13 失败')}, 1000)})
​// 看谁跑的快就返回谁Promise.race([p11, p12, p13]).then(res => {console.log(res);}).catch(err => {console.log(err);}).finally(() => {console.log('你是最后的');}) 

 

Promise.finally() :

无论成功与否,都会执行

3.0 axios 【掌握】

基于Promise的Http请求库

语法结构:

get:

axios.get('url?参数='+参数值)
.then(res=>{})
​
axios.get('url',{params:{键名:键值,键名1:键值1}
})

post:

axios.post('url',{键名:键值,键名1:键值1})

配置项写法:

axios({method: '请求方式 get post',url: '请求地址',// 如果你是get请求params:{键名:键值,键名1:键值1},// 如果你是post请求data:{键名:键值,键名1:键值1}
})
​

 

参数配置

baseURL :'基础地址'
    axios.defaults.baseURL= 'http://139.9.177.51:3701'
timeout : 超时时间ms
    axios.defaults.timeout = 15000

axios解决回调地狱

 

4.0 async 和 await 【重点】

async 音译:异步

await 音译:等待

4.1 语法结构[背]

  • async 用于修饰函数,表示该函数里存在异步操作

  • await在async修饰的函数中,必须连用

  • await 用于修饰Promise

     

 // async 和 await 实现const fn = async () => {// 请求a.json得到codeconst res = await axios('./serve/a.json')const { code } = res.data// 携带code 请求b.json 得到idconst res1 = await axios(`./serve/b.json?code=${code}`)const { id } = res1.data// 携带id 请求c.json 得到dataconst res2 = await axios(`./serve/c.json?id=${id}`)document.querySelector('h1').innerHTML = res2.data.data}fn()

async和awite解决回调地狱

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_484557.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最详细的静态路由的原理和配置

第四章:静态路由 转发数据包是路由器的最主要功能。路由器转发数据包时需要查找路由表,管理员可以通过手工的方法在路由器中直接配置路由表,这就是静态路由。虽然静态路由不适合于在大的网络中使用,但是由于静态路由简单、路由器…

SQL中使用的运算符号详解

文章目录 前言1. 算术运算符加法与减法运算符乘法与除法运算符求模(求余)运算符 2. 比较运算符1.等号运算符2.安全等于运算符3.不等于运算符4. 空运算符5. 非空运算符6. 最小值运算符7. 最大值运算符8. BETWEEN AND运算…

MySQL索引的底层实现原理

索引的底层实现原理 数据库索引是存储在磁盘上的,当数据量大时,就不能把整个索引全部加载到内存了,只能逐一加载每一个磁盘块(对应索引树的节点),索引树越低,越“矮胖”,磁盘IO次数…

国产化:复旦微JFM7K325T +华为海思 HI3531DV200 的综合视频处理平台

板卡概述 TES714 是自主研制的一款 5 路 HD-SDI 视频采集图像处理平台,该平台采用上海复旦微的高性能 Kintex 系列 FPGA 加上华为海 思的高性能视频处理器 HI3531DV200 来实现。 华为海思的 HI3531DV200 是一款集成了 ARM A53 四核处理 器性能强大的神经网络引擎…

7. Docker——Dockerfile

本章讲解知识点 DockerfileDockerfile 常用命令Dockerfile 综合示例Docker Compose当我们理解了镜像的基本原理后,我们就可以开始 Dockerfile 的学习了。 1. Dockerfile Dockerfile 是用于构建 Docker 镜像的脚本。它包含一组指令,按顺序执行以创建 Docker 镜像,从而使其可…

网络安全合规-Tisax(三)

一、什么是TISAX? TISAX 可信信息安全评估与交换标准是基于ISO 27001信息安全管理体系标准和VDA-ISA信息安全评价检查表而建立的汽车行业专用信息安全标准。TISAX 为汽车行业内不同服务商提供了信息安全评估结果互认的模式,供应商通过了该评估,即意味着…

vmware 安装Kylin-Desktop-V10-SP1-General-Release-2203-X86_64.iso

下载 官网:国产操作系统、银河麒麟、中标麒麟、开放麒麟、星光麒麟——麒麟软件官方网站 (kylinos.cn) 点击桌面操作系统 选择No1 点击申请试用 填写相关信息,点击立即提交,就会获取到下载连接, 点击下载按钮等待下载完成即可 安…

虹科干货 | 零售业数智升级不掉队,get数据,get未来!

电商崛起,传统零售行业危机四伏,全渠道盈利与可持续化成为难点,库存管理这块难啃的“硬骨头”也同样让零售商倍感压力… 背腹受敌的零售商,如何才能在数字化转型道路上避免利润缩水,与供应商协作共赢,摆脱困…

基于max30102的物联网病房监测系统(中断处理和主题逻辑)

目录 五、中断处理 六、主体框架 对采集数据的初始化 核心功能的实现 烟雾 通信帧格式 wifi接收数据的处理 OLED显示 五、中断处理 void SysTick_Handler(void) {TimingDelay_Decrement(); }void ESP8266_USART_INT_FUN(void) {uint8_t ucCh;if ( USART_GetITStatus (…

【ROS】如何让ROS中节点实现数据交换Ⅰ--ROS话题通信

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 目录 0.ROS文件系统及常用指令1.话题通信概念2.利用标准消息类型实现话题通信实现(python)2.1发布方实现2.2订阅方实现 3.利用自定义消息类…

SPSS如何进行使用时间序列模型之案例实训?

文章目录 0.引言1.时间序列数据平稳处理2.指数平滑法建模3.ARIMA建模4.季节性分解 0.引言 因科研等多场景需要进行绘图处理,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对…

【Git】制造冲突以及解决冲突的详细方法

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

编译原理笔记(一)引论

文章目录 1.什么是编译程序2.编译过程和编译程序的结构2.1.编译过程概述2.2.编译程序的结构2.3.编译阶段的组合 3.解释程序和一些软件工具3.1.解释程序3.2.处理源程序的软件工具 4.PL/0语言编译系统 学习总结:这一部分是编译原理的绪论部分内容,对编译程…

神经网络结构搜索NAS

推荐课程:神经网络结构搜索 感谢博主ShusenWang提供的课程讲解! 目录 1. 为什么要学习神经网络结构搜索NAS? 2. 什么是神经网络结构搜索NAS? (1)随机搜素Random Search 1. 为什么要学习神经网络结构搜…

漫天花雨HTML特效+3D相册

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

or-tools 应用案例分析:复杂作业车间调度问题

作业调度问题是常见的线性规划(整数规划)问题,其中多个作业在多台机器上处理。每个作业由一系列任务组成,这些任务必须按给定的顺序执行,并且每个任务都必须在特定的机器上处理。如何有效的利用所有的机器在最短的时间内完成所有的作业任务&a…

调试别人的API,一般有哪些步骤?

当我们使用了一些由别人实现的API接口时,该如何进行调试呢?当我们使用的API返回一些意想不到错误时,该怎么办呢?这个问题可能是由于用户输入或者API本身,或者其他完全无关的内容等引起的。调试是我们进行定位并修复由单个API调用…

[杂谈]从《天堂2》到永恒之塔私服的感慨

不才在下是个老丫头了,平时喜欢潜水,还是在玩激战时注册的多玩论坛号,也不怎么说话,都是看别人说得多(害羞嘛……)。 想当年《天堂二》内测时,刚好在成都开了个内测号 首发会,我大清…

Linux 五种网络IO模式(阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO)

Linux网络编程中,有五种网络IO模式,分别是阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO; 虽然说不能全都认识得很透彻,但至少得都知道一点! 开始之前,先了解以下同步IO和异步IO; 1. 同步…

linux0.12-8-4-sys_call.s

[301页] 8-4 sys_call.s 程序 sys_call.s 程序简单总结: int 0x80 – _system_call int16 – 处理器错误中断 int7 – 设备不存在或协处理器不存在。 int32 – (int 0x20)时钟中断处理程序。 两个系统功能的底层接口,分别是 sys_execve 和 sys_fork 。…