什么是 async/await
async/await是ES8(ECMAScript 2017)引入的新语法,用来简化Promise 异步操作。在async/await出现之前,开发者只能通过链式.then()的方式处理Promise 异步操作。
.then链式调用的优点:解决了回调地狱的问题
.then链式调用的缺点:代码冗余、阅读性差、不易理解
使用async/ await简化Promise异步操作的示例代码如下:
import thenFs from 'then-fs'
console.log('A')
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(r1,r2,r3)
console.log('D')
}
getAllFile()
console.log('C')
async/await的使用注意事项
如果在function中使用了await,则 function必须被async修饰
在async方法中,第一个await之前的代码会同步执行,await之后的代码会异步执行
所以上面的代码输出结果是:
A
B
C
r1,r2,r3里面的内容
D