promise和async

Promise

是异步编程的一种解决方案
是为了解决js中的回调地狱问题

  • 什么是回调地狱
    当回调函数嵌套过多时就会出现回调地狱
ajax(url1,function(res1){
			console.log(res1)
			ajax(url2,function(res2){
				console.log(res1,res2);
				ajax(url3,function(res3){
					console.log(res1,res2,res3);
				})
			})
		})

Promise对象代表一个异步操作,它有三种状态:pending(进行中),resoved(已成功),rejected(已失败)
Promise的好处在于可以将异步操作以同步操作的流程(方式)表达出来(通俗的说:即使你调用的是异步代码,它也会变成类似同步,等异步代码执行完之后再执行同步);它也有一些缺点:它一旦新建就会立即执行,中途不可取消,当处于pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)。

用法

Promise对象是一个构造函数,用来生成Promise实例。Promist构造函数接受一个回调函数作为参数,该函数又有两个参数resolve和reject。resolve是在异步操作成功时调用,用then来接收,并将返回结果通过参数形式,用catch来接收

async和await

用法:
async的用法,他作为一个关键字放到函数前面,这样普通的函数就变为了异步函数

  1. 异步async函数调用,跟普通函数的使用方式一样
  2. 异步async函数返回一个promise对象
  3. async函数配合await关键字使用(阻塞代码往下执行)是异步方法,但是阻塞式的
const post = async function () {
	let { data } = await axios.get(url)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值