將異步代碼寫成同步的形式
promisify :改造現有的異步api返回promise對象
const fs = require('fs')
const promisify = require('util').promisify
const readFile = promisify(fs.readFile)
async function run() {
let doc = await readFile('./demo01.js', 'utf8')
console.log(doc);
}
run()
// 1.在普通函數定義的前面加上async關鍵字 普通函數就變成了異步函數
// 2.異步函數默認的返回值是promise對象
// 3.在異步函數內部使用throw關鍵字進行錯誤的拋出
//
// await關鍵字
// 1.它只能出現在異步函數中
// 2.await promise 它可以暫停異步函數的執行 等待promise對象返回結果後再向下執行函數
// async function fn () {
// throw '發生了一些錯誤';
// return 123;
// }
// // console.log(fn ())
// fn ().then(function (data) {
// console.log(data);
// }).catch(function (err){
// console.log(err);
// })
async function p1 () {
return 'p1';
}
async function p2 () {
return 'p2';
}
async function p3 () {
return 'p3';
}
async function run () {
let r1 = await p1()
let r2 = await p2()
let r3 = await p3()
console.log(r1)
console.log(r2)
console.log(r3)
}
run();