axios,async,promise,await的简单理解与使用

简介: 一.Promise解决的是将“异步过程“变成“同步过程”1.Promise 是一个构造函数⚫ 我们可以创建 Promise 的实例 const p = new Promise()⚫ new 出来的 Promise 实例对象,代表一个异步操作2. Promise.prototype 上包含一个 .then() 方法注:prototype表示该函数的原型,也表示一个类的成员的集合。 在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。 2、在new实例化后,其成员被实例化,实例对象方可调用。

axios,async,promise,await的简单理解与使用



文章目录


一.Promise解决的是将“异步过程“变成“同步过程”

二.async代表该方法下面会调用promise请求

三.await就是“等“的意思,在实际需要调用promise的方法前添加,如果调用某个方法的返回值是promise实例,则前面可以添加await,await只能用在被async修饰的方法中

四.调用axios方法得到的返回值是promise对象

五.解构赋值的时候,使用:进行重命名


一.Promise解决的是将“异步过程“变成“同步过程”


1.Promise 是一个构造函数


⚫ 我们可以创建 Promise 的实例 const p = new Promise()


⚫ new 出来的 Promise 实例对象,代表一个异步操作


2. Promise.prototype 上包含一个 .then() 方法


注:prototype表示该函数的原型,也表示一个类的成员的集合。 在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。 2、在new实例化后,其成员被实例化,实例对象方可调用。


⚫ 每一次 new Promise() 构造函数得到的实例对象,


⚫ 都可以通过原型链的方式访问到 .then() 方法,例如 p.then()


(1) .then() 方法用来预先指定成功和失败的回调函数


⚫ p.then(成功的回调函数,失败的回调函数)


⚫ p.then(result => { }, error => { })


⚫ 调用 .then() 方法时,成功的回调函数是必选的、失败的回调函数是可选的


(2).then() 方法的特性


如果上一个 .then() 方法中返回了一个新的 Promise 实例对象,则可以通过下一个 .then() 继续进行处理。通

过 .then() 方法的链式调用,就解决了回调地狱的问题


3.通过 .catch 捕获错误


如果不希望前面的错误导致后续的 .then 无法正常执行,则可以将 .catch 的调用提前,示例代码如下:


0bcc96c04cb249dd850e44151fce339f.png


4.Promise.all() 方法


Promise.all() 方法会发起并行的 Promise 异步操作,等所有的异步操作全部结束后才会执行下一步的 .then操作(等待机制)。示例代码如下:


36fdc51edf8b46d1ac13269629f4353b.png


4.Promise.race() 方法


Promise.race() 方法会发起并行的 Promise 异步操作,只要任何一个异步操作完成,就立即执行下一步的

.then 操作(赛跑机制)。示例代码如下


20bbd617dc614071acf9939f7b630402.png


二.async代表该方法下面会调用promise请求


三.await就是“等“的意思,在实际需要调用promise的方法前添加,如果调用某个方法的返回值是promise实例,则前面可以添加await,await只能用在被async修饰的方法中


四.调用axios方法得到的返回值是promise对象


例子:


axios({
// 请求方式
method: ‘GET/POST’,
url: ‘请求的地址’,
// URL 中的查询参数
params: {
id: 1
}
}).then(function (result) {
console.log(result)
})


五.解构赋值的时候,使用:进行重命名


(1)调用axios之后,使用async+await进行简化


(2)使用解构赋值,从axios封装的大对象中,把data属性解构出来


(3)把解构出来的data属性,使用冒号进行重命名,一般都重命名为{data:res}

axios在请求到数据之后,会在真正的数据之外,套了一层壳。会得到6个属性,其中data才是真正的数据


05a62687b51f4fb88dd295d6e3d3f4bc.png


解构例子:


async fangFaMing() {
const { data: res } = await axios.get(‘请求地址’)
console.log(res)
},
目录
相关文章
|
14天前
|
前端开发 JavaScript 开发者
Async 和 Await 是基于 Promise 实现
【10月更文挑战第30天】Async和Await是基于Promise实现的语法糖,它们通过简洁的语法形式,借助Promise的异步处理机制,为JavaScript开发者提供了一种更优雅、更易于理解和维护的异步编程方式。
22 1
|
14天前
|
JSON 前端开发 JavaScript
浅谈JavaScript中的Promise、Async和Await
【10月更文挑战第30天】Promise、Async和Await是JavaScript中强大的异步编程工具,它们各自具有独特的优势和适用场景,开发者可以根据具体的项目需求和代码风格选择合适的方式来处理异步操作,从而编写出更加高效、可读和易于维护的JavaScript代码。
21 1
|
1月前
|
前端开发 JavaScript
setTimeout、Promise、Async/Await 的区别
`setTimeout` 是用于延迟执行函数的简单方法;`Promise` 表示异步操作的最终完成或失败;`Async/Await` 是基于 Promise 的语法糖,使异步代码更易读和维护。三者都用于处理异步操作,但使用场景和语法有所不同。
|
1月前
|
前端开发 JavaScript 开发者
JavaScript 中的异步编程:深入了解 Promise 和 async/await
【10月更文挑战第8天】JavaScript 中的异步编程:深入了解 Promise 和 async/await
|
1月前
|
前端开发 JavaScript UED
深入了解JavaScript异步编程:回调、Promise与async/await
【10月更文挑战第11天】深入了解JavaScript异步编程:回调、Promise与async/await
15 0
|
2月前
|
前端开发 JavaScript
解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
该文章教授了如何使用Promise和async/await来解决异步编程问题,从而避免回调地狱,使代码更加清晰和易于管理。
解决异步问题,教你如何写出优雅的promise和async/await,告别callback回调地狱!
|
3月前
|
前端开发 JavaScript 开发者
探索前端开发中的异步编程:Promise与Async/Await
在现代前端开发中,处理异步操作是至关重要的。本文将深入探讨异步编程的核心概念,重点比较JavaScript中的Promise与Async/Await两种异步编程方式。通过实例和比较,读者将能够理解这两种方法的优缺点,如何在实际开发中选择适合的异步编程模式,从而编写更简洁、可维护的代码。
|
1月前
|
资源调度 JavaScript
|
3月前
|
JavaScript 前端开发
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
这篇文章主要讨论了axios的使用、原理以及源码分析。 文章中首先回顾了axios的基本用法,包括发送请求、请求拦截器和响应拦截器的使用,以及如何取消请求。接着,作者实现了一个简易版的axios,包括构造函数、请求方法、拦截器的实现等。最后,文章对axios的源码进行了分析,包括目录结构、核心文件axios.js的内容,以及axios实例化过程中的配置合并、拦截器的使用等。
【Vue面试题二十五】、你了解axios的原理吗?有看过它的源码吗?
|
1月前
|
缓存 JavaScript 搜索推荐