异步函数
异步函数是异步编程语法的终极解决方案,它可以让我们将异步代码写成同步的形式,让代码不再有回调函数嵌套,是代码变得清晰明了
``` const fn = async()=>{} async function fn(){} ``` ``` //1.在普通函数定义的前面加上async关键字 普通函数就变成了异步函数 //2.异步函数默认返回值是promise对象 //3.在异步函数内部使用throw关键字进行错误的抛出 async function fn(){ throw '发生了一些错误' return 123; } fn().then(function(data){ console.log(data) }).catch(function(err){ console.log(err) }) ``` ``` //then(参数1,参数2) //参数1:用于获取promise对象成功的回调函数 //参数2:用于获取promise对象失败的回调函数 async function fn(a){ if(a !=10){ throw "变量值错误,不等于10"; }else{ return "变量值等于10"; } } fn(11).then(function(data){ console.log(data); },function(info){ console.log(info); }) ```async关键字
1.普通函数定义前加async关键字 普通函数变成异步函数
2.异步函数默认返回promise对象
3.在异步函数内部使用return关键字进行结果返回,结果会被包裹的promise对象中,return关键字代替了resolve方法
4.在异步函数内部使用throw关键字抛出程序异常
5.调用异步函数再链式调用then方法获取异步函数执行结果
6.调用异步函数再链式调用catch方法获取异步函数执行的错误信息
await关键字
1.await关键字只能出现在异步函数中
2.await promise await后面只能写promise对象 写其他类型的API是不可以的
3.await关键字可以暂停异步函数向下执行 直到promise返回结果
``` async function p1(){ return 'p1' } async function p2(){ return 'p2' } async function p3(){ return 'p3' } async function p4(){ return 'p4' } async function p5(){ return 'p5' } async function fun(){ var a = await p1(); var b = await p2(); var c = await p3(); var d = await p4(); var e = await p5(); console.log(a); console.log(b); console.log(c); console.log(d); console.log(e); } fun() ```