1.async 函数声明及调用方式:
1 // async 函数声明,调用 2 const a1 = async() => { 3 console.log("this is an async function1") 4 }; 5 6 async function a2() { 7 console.log("this is an async function2") 8 } 9 10 a1();11 a2();12 ;(async ()=>{console.log("this is an async function3")})()
2.async 函数返回值:async 函数会返回一个Promise对象,所以处理返回值的方式和Promise一毛一样
1 // async 函数返回值2 const b1 = async (arg) => {3 return arg4 }5 var res = b1('hello');6 res.then(resolve=>{console.log(resolve)});
3.直接获取async 函数返回值: await
1 // 直接获取 async函数返回值: await需要与 async 函数搭配2 var ret = async (x) => {3 return x4 }5 var solve = async () => {6 var some_ret = await ret('hello,world');7 console.log(some_ret);8 }9 solve();
1 // 也可以直接获取 Promise 返回值2 var solvePromise = async() => {3 var some_ret = await new Promise(resolve=>{4 resolve('hello, world')5 })6 console.log(some_ret);7 }8 solvePromise();
await的作用是 中断当前函数体中语句的执行, 等待await 后 Promise 执行完毕;
4.async 函数串行执行
1 // async 函数串行执行方式2 const a = async() => {3 const b = await (async () => {})()4 const c = await (async () => {})()5 }6 a();
5.async 函数并行执行
1 // async 函数并行执行方式2 const a = async () => {3 const b = (async () => {})()4 const c = (async () => {})()5 const b1 = await b;6 const c1 = await c;7 }8 a();9 // b,c 会分别先执行, 在b1 和 c1 变成串行