网站建设费用核算科目,陕西省安康市建设局网站,电动车行业网站建设,软件开发怎么样1. 什么是 async/await
async/await 是 ES8#xff08;ECMAScript 2017#xff09;引入的新语法#xff0c;用来简化 Promise 异步操作。在 async/await 出 现之前#xff0c;开发者只能通过链式 .then() 的方式处理 Promise 异步操作。示例代码如下#xff1a;
import …1. 什么是 async/await
async/await 是 ES8ECMAScript 2017引入的新语法用来简化 Promise 异步操作。在 async/await 出 现之前开发者只能通过链式 .then() 的方式处理 Promise 异步操作。示例代码如下
import thenFs from then-fsthenFs.readFile(./files/1.txt,utf8) // 返回值是 promise 的实例对象。
.then(r1{ // 通过 .then 为第一个 Promise 实例指定成功之后的回调函数。console.log(r1)return thenFs.readFile(./files/2.txt,utf8) // 在第一个 .then 中返回一个新的 promise 的实例对象。
})
.then(r2{ // 继续调用 .then 为上一个 .then 的返回值新的 Promise 实例) 指定成功之后的回调函数。console.log(r2)return thenFs.readFile(./files/3.txt,utf8) // 在第二个 .then 中返回一个新的 promise 的实例对象。
})
.then(r3{ // 继续调用 .then 为上一个 .then 的返回值新的 Promise 实例) 指定成功之后的回调函数。console.log(r3)
})// 运行结果
// txt file 1
// txt file 2
// txt file 3
.then 链式调用的优点 解决了回调地狱的问题.then 链式调用的缺点 代码冗余、阅读性差、 不易理解 2. async/await 的基本使用
import thenFs from then-fs;//按照顺序读取 123文件的内容
async function getAllFile(){const r1 await thenFs.readFile(./files/1.txt,utf8)// 当在 thenFs.readFile()方法前面添加 await 关键字时返回的不是一个 Promise 实例了而是文件的内容。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)
}
//调用方法
getAllFile();// 运行结果
// txt file 1
// txt file 2
// txt file 3 3. async/await 的使用注意事项
如果在 function 中使用了 await则 function 必须被 async 修饰在 async 方法中第一个 await 之前的代码会同步执行await 之后的代码会异步执行
import thenFs from then-fs;console.log(A)
//按照顺序读取 123文件的内容
async function getAllFile(){console.log(B)const r1 await thenFs.readFile(./files/1.txt,utf8)const r2 await thenFs.readFile(./files/2.txt,utf8)const r3 await thenFs.readFile(./files/3.txt,utf8)console.log(r1,r2,r3)console.log(D)
}//调用方法
getAllFile();
console.log(C)// 运行结果
// A
// B
// C
// txt file 1
// txt file 2
// txt file 3
// D