一,async函数介绍

1.async函数是异步的一种方案,可以让异步的操作同步执行。

二,async函数基本形式

1.声明形式:在函数前加上关键字async 表示该函数是一个async 函数

//声明式函数形式
async function fn(){
	await ...
}

//函数表达式形式
const fn = async function(){ await ... }

//箭头函数形式
const fn = async ()=> { await ... }

2.async函数还有个关键字await 在函数内部使用

三,await命令

1.await有等待的意思,需等待后面的Promise 执行结束才会执行下一步。这里强调一下后面的Promise,是因为假如后面直接跟的是一个计时器,那么计时器虽然是异步操作,但是不会等计时器回调函数执行才执行下一步。

2.await后面可以跟Promise,和其他类型的数据

(1)当跟的是Promise时,值是执行成功的返回值。

async function fn(){
	let a = await Promise.resolve(1)   a=1
	let b = await Promise.resolve(2) b=2
	return a+b  
}
fn().then(v=>v) v =3

(2)如果是其他数据时,返回值就是数据本身会返回的值,该啥值是啥值

function k(){}
async function fn(){
	let a = await k   //a就是函数k
	let b = await 1 //b=1
	let c = await setTimeOut(...) //c是定时器的id数值
}

四,async函数返回Promise对象

1.async函数返回值是一个Promise对象,可以使用.then接受一个回调函数,和Promise的所有操作

2.Promise的状态改变的的几种情况

(1)await其中一个Promse执行失败,那么接下来的await不会继续执行async函数返回Promise的状态变为失败,执行.catch方法

(2)当执行到return ,下面的await不会执行,return的值就是.then回调函数的参数

(3)当throw new Error 下面的状态不会执行,async函数返回Promise的状态变为失败,执行.catch方法

(4)当所有的异步操作都能成功时,那么只有所有异步操作执行完后,async函数返回Promise的状态变为成功,返回值是return的值

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐