1、async是什么
async用于声明异步的,常常用于处理回调函数。
async返回一个promise的对象,可以直接用.then,.catch来处理结果。onl oad: function (options) { // 声明该方法为异步方法,会返回一个Promise对象 async function test(){ return '云开发' } // var a = test(); // console.log(a) console.log(test()) test().then((res)=>{ console.log("ook") }) test().catch(err=>{ console.log('nono') }) }
2、resolve成功之后的返回, reject是失败的返回。
3、await 它会阻止后面的代码运行,因为他后面的代码会等待上一个await完成(resolve) await避免产生了回调地狱情况,并且提高了代码的可读性。 注意:await需要搭配async使用,否则会报错。 当没有使用await时,会直接返回Promise对象,并不会执行完resolve()内容。
function pro1() { return new Promise((resolve, reject) => { resolve(1) }) } function pro2() { return new Promise((resolve, reject) => { resolve(2) }) } // 不使用await const a1 = pro1() const a2 = pro2() console.log(a1) console.log(a2)
执行结果:
function pro1() { return new Promise((resolve, reject) => { //延时4秒 setTimeout(()=>{ resolve(1) },4000) }) } function pro2() { return new Promise((resolve, reject) => { resolve(2) }) } async function test2(){ const a1 = await pro1() const a2 = await pro2() console.log(a1) console.log(a2) } test2()
执行结果:因为await会阻止后面的代码运行,因为他会面的代码会等待上一个await完成,也就是会执行完resolve()再结束方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。