async 和await理解

    xiaoxiao2024-12-19  10

    async和await  是es7的特性,是从promise 里面延伸出来的新语法糖  他会将异步操作修改成同步操作,并且代码看起来更优雅 

    直接看例子:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> a() async function a() { await b() console.log(111); setTimeout(async () => { console.log('aaaa'); }, 1000) } function b() { console.log('b1'); return new Promise(resolve => { setTimeout(function () { console.log('bbbbb'); resolve(); }, 2000) c(); }) } function c() { console.log('c1'); return new Promise(resolve => setTimeout(function () { console.log('cccc'); }, 1000)) } </script> </html>

    在多层函数嵌套的时候async await  只会等待最近一层的操作 如果需要每层等待就需要每一层都加上async和await,如上所见

    还有Generator函数(需要手动触发(next()方法)才能执行)

    PS:  await  后面必须跟一个promise对象, 而async 函数返回的是一个promise对象

    最新回复(0)