1.Buffer(缓冲区)
buf.toString() 将缓冲区中的数据转换为字符串
buf.lenght 占用内存的大小
2.文件系统 (File System)
同步与异步:
同步文件系统会阻塞程序的执行,也就是除非操作完毕,否则不会向下执行代码。
异步文件系统不会阻塞程序的执行,而是在操作完成时,通过回调函数将结果返回。
3.文件的写入
1.打开文件 fs.openSync(path[, flags, mode])
2.向文件中写入内容 fs.writeSync(fd, string[, position[, encoding]])
3.保存并关闭文件 fs.closeSync(fd)
4.同步API,异步API
同步API:只有当前API执行完成后,才能继续执行下一个API
console.log('before');
console.log('after');
异步API:当前API的执行不会阻塞后续代码的执行
console.log('before');
setTimeout(
() => { console.log('last');
}, 2000);
console.log('after');
同步API和异步API的区别:
(1)获取返回值
同步API可以从返回值中拿到API执行的结果, 但是异步API是不可以的
(2)代码执行顺序
同步API从上到下依次执行,前面代码会阻塞后面代码的执行
5.promise
作用:Promise出现的目的是解决Node.js异步编程中回调地狱的问题。
6.异步函数
作用:异步函数是异步编程语法的终极解决方案,它可以让我们将异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。
const fn = async () => {};
async function fn () {}
async关键字
1.普通函数定义前加async关键字 普通函数变成异步函数
2.异步函数默认返回promise对象
3.在异步函数内部使用return关键字进行结果返回 结果会被包裹的promise对象中 return关键字代替了resolve方法
4.在异步函数内部使用throw关键字抛出程序异常
5.调用异步函数再链式调用then方法获取异步函数执行结果
6.调用异步函数再链式调用catch方法获取异步函数执行的错误信息
await关键字
1.await关键字只能出现在异步函数中
2.await promise await后面只能写promise对象 写其他类型的API是不不可以的
3.await关键字可是暂停异步函数向下执行 直到promise返回结果