異步函數

將異步代碼寫成同步的形式
在這裏插入圖片描述
在這裏插入圖片描述
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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章