- 回调地狱: 异步回调函数中又嵌套异步回调函数
promise 对象: 解决异步函数嵌套问题,本身是一个构造函数 需要new创建
promise 构造函数的形参是一个函数,这个函数中一定要放入异步函数
promise 两个形参 ,then() 处理成功结果, catch() 处理失败结果
- Promise的三种状态
- 利用then-fs 模块解决回调地狱 先下载模块 npm i then-fs
- Promise对象的同步异步
- 同步先执行 异步后执行
- new Promise的参数中的代码是同步执行
- then及catch中的代码是异步执行的
- async修饰的函数,不是异步函数
- await能停止代码执行,让后面的同步代码,先执行
- async 和 await 修饰符
async 返回 Promise
await 返回 Promise 对象中的then() 中的res
- async 修饰的函数,总是返回一个 Promise 对象
- 函数的返回值,将自动包装在 resolve 的 promise 中
- await只能出现在async修饰的函数中!
- await后面跟随的是一个promise对象
- await能停止代码执行,让后面的同步代码,先执行;
- await返回的是: Promise对象中的then()中的回调函数中的参数res;
async和await解决回调地狱
try..catch..可以捕获错误
同步异步 执行机制
- js代码开始执行后,主线程执行栈中会把任务分为两类
- 一类是同步任务,一类是异步任务;主线程执行栈优先执行同步任务
- 异步任务会被放入特定的处理程序中,满足条件后,被放到消息(任务/事件)队列中
- 主线程执行栈中所有的同步任务执行完毕之后,通过事件循环去消息(任务/事件)队列中
- 挑选优先满足条件的程序,放入主线程执行栈中执行。事件循环,周而复始,一直执行
- 同步优于微任务,微任务优于宏任务