(1)js的执行机制(单线程)
同步任务:同步任务在主线程执行,形成一个执行栈
异步任务:通过回调函数实现,常见有:click,resize,setInterval,setTimeout等
(2)多个回调函数相互嵌套,就会形成回调地狱,例:
(3)用promise解决回调地狱
- promise是一个构造函数 const p = new promise () //promise实例
- new出来的promise实例对象代表一个异步操作
- 可以用原型链的方法访问到.then方法,如p.then()
- 可以用.then方法预先指定成功和失败的方法 .如p.then(成功的回调函数,失败的回调函数)或p.then( result => { },error => { } )
- 例:以读取文件为例:要求按顺序读取3个文件
*注:这里的import thenFs from 'then-fs'是按需导入then-fs这的第三方的包(npm install then-fs安装),readFile是then-fs的一个方法。
利用promise的方式读取文件,但没有按顺序读取。更改如下
7.用.catch方法捕获错误
若.catch放到最后,则若发现错误,就暂停执行,输出错误
8.promis.all和promise.race
- promis.all()方法会发起并行的promise操作,等所有的异步操作完成之后,在执行.then方法
- promise.race()方法也会发起并行的promise操作,但是只要一个异步操作完成之后,就会调用其.then方法
*以上知识吸取与黑马程序员的vue3课程,推荐推荐 !