const fs = require("fs"); //Promise方法 //readFilep用于将readFile进行封装成Promise类型 let readFilep = function (filename) { return new Promise((resolve,reject)=>{ fs.readFile(filename,(err,data)=>{ if(err) reject(err); resolve(data); }) }) } readFilep("./data/a.txt").then(res=>{ console.log(res.toString()); return readFilep("./data/b.txt"); }).then((res)=>{ console.log(res.toString()); return readFilep("./data/c.txt"); }) //使用generator的方式 function * readFileg() { yield fs.readFile("./data/a.txt",(err,data)=>{ if(err) throw err; console.log(data.toString()); }); yield fs.readFile("./data/b.txt",(err,data)=>{ if(err) throw err; console.log(data.toString()); }); yield fs.readFile("./data/c.txt",(err,data)=>{ if(err) throw err; console.log(data.toString()); }); return ""; } readFileg().next();// a.txt内容 readFileg().next();// b.txt内容 readFileg().next();// v.txt内容 //async 方法 当代码执行错误时 中止程序 后面的代码不再执行 //async 方法中 await后面的为Promise对象 当Promise状态为rejecr时 中止程序 //async 返回的是一个promise对象 async function readFilea() { await fs.readFile("./data/a.txt",(err,data)=>{ if(err) throw err; console.log(data.toString()); }); await fs.readFile("./data/b.txt",(err,data)=>{ if(err) throw err; console.log(data.toString()); }); await fs.readFile("./data/c.txt",(err,data)=>{ if(err) throw err; console.log(data.toString()); }); }
复习ES6 异步处理async、generator以及Promise的用法小案例
最新推荐文章于 2022-12-12 16:33:57 发布