基本使用
1~默认导出的语法:export default 默认导出成员
2~默认导入的语法:import 接收名 from '模块名'
3~注意事项
1-每个模块中只能使用一次export default,否则会报错 ★★★
2-导入包的时候要加js后缀,不然会报错
3-接收名能任意取,但是要合法即可,不能以数字开头
4~按需导出
语法:export let xx='xxx'
export function xx(){}
xport default 可以加入默认导出
5~按需导入
语法:import {xx}from '模块名'
xx的名称必须与导入的名字一致 {xx,xx as 改名字}
import info ,{xx,xx} from '模块名' 导入默认导入一起使用
info中包含默认导出的内容 log打印info 即可
6~直接导入并执行模块中的代码
直接:import 'xxx.js' 模块名的路径
Promise
1-回调地狱
代码耦合性太强 牵一发动全身,难以维护
大量的冗余代码相互嵌套,可读性太差
2-Promise的基础概念
① Promise 是一个构造函数
我们可以创建 Promise 的实例 const p = new Promise()
new 出来的 Promise 实例对象,代表一个异步操作
② Promise.prototype 上包含一个 .then() 方法
每一次 new Promise() 构造函数得到的实例对象,
都可以通过原型链的方式访问到 .then() 方法,例如 p.then()
③ .then() 方法用来预先指定成功和失败的回调函数
p.then(成功的回调函数,失败的回调函数)
p.then(result => { }, error => { })
调用 .then() 方法时,成功的回调函数是必选的、失败的回调函数是可选的
7-then-fs 的基本使用
安装then-fs
调用 then-fs 提供的 readFile() 方法,可以异步地读取文件的内容,它的返回值是 Promise 的实例对象。因 此可以调用 .then() 方法为每个 Promise 异步操作指定成功和失败之后的回 调函数
8-async/await --
async function getAllFile() {
console.log('B')
const r1 = await thenFs.readFile('./files/1.txt', 'utf8')
console.log(r1)
const r2 = await thenFs.readFile('./files/2.txt', 'utf8')
console.log(r2)
const r3 = await thenFs.readFile('./files/3.txt', 'utf8')
console.log(r3)
console.log('D')
}
9-宏任务
setTimeout、setInterval、
异步 Ajax 请求、
文件操作
其它宏任务
10-微任务
Promise.then、.catch 和 .finally
process.nextTick
其它微任务
11-优先级
每一个宏任务执行完之后,都会检查是否存在待执行的微任务,
如果有,则执行完所有微任务之后,再继续执行下一个宏任务
优先级 同步--》 微任务----》宏任务