标签:console log utf8 thenFS JS Promise readFile txt
//1. promise是一个构造函数: // 创建一个promise实例: // const p=new Promise();(代表一个异步操作) //2. Promise.prototype上包含一个.then()方法,因此每一次new Promise()构造函数得到的实例对象都可以通过原型链的方式访问到.then()方法: // 例如 p.then(); // 3. .then()方法用来预先指定成功和失败的回调函数 // p.then(成功的回调函数(必选),失败的回调函数) // 4.基于then-fs读取文件内容:安装 then-fs包,then-fs提供一个readFile()方法,可异步读取文件内容(不保证读取顺序),他返回值是promise实例对象; import thenFS from 'then-fs' // thenFS.readFile('','utf8').then((res)=>{// }) // promise支持链式调用(以此来按顺序读取文件): // thenFS.readFile('./file/1.txt','utf8').then((r1)=>{ // console.log(r1); // return thenFS.readFile('./file/2.txt','utf8'); // }).then((r2)=>{ // console.log(r2); // thenFS.readFile('file/3.txt','utf8'); // }).then((r3)=>{ // console.log(r3); // }) // 5. 通过.catch()捕获其之前错误: // thenFS.readFile('./file/1.txt','utf8').then((r1)=>{ // console.log(r1); // return thenFS.readFile('./file/2.txt','utf8'); // }) // .catch(err=>{ // console.log(err.message); // }) // .then((r2)=>{ // console.log(r2); // thenFS.readFile('file/3.txt','utf8'); // }).then((r3)=>{ // console.log(r3); // }) // 6.promise.all方法()发起并行的异步操作,等所有异步操作全结束后才会执行.then()操作 // const promiseArr=[ // thenFS.readFile('./file/1.txt','utf8'), // thenFS.readFile('./file/2.txt','utf8'), // thenFS.readFile('./file/3.txt','utf8'), // ] // Promise.all(promiseArr).then(result=>{ // console.log(result); // }) // ['111','222','333'] // 7.promise.race()方法只要任何一个异步操作完成,就立即执行下一个.then()操作 // Promise.race(promiseArr).then(result=>{ // console.log(result); // })
// 8.自定义getFile方法: import fs from 'fs'
function getFile(fpath){ return new Promise(function(resolve,reject){ //function()里是一个具体的异步操作 fs.readFile(fpath,'utf8',(err,dataStr)=>{ if(err) return reject(err); resolve(dataStr); }) }) }
getFile('./file/1.txt').then((r1)=>{console.log(r1);},(err)=>{console.log(err,message);})
标签:console,log,utf8,thenFS,JS,Promise,readFile,txt 来源: https://www.cnblogs.com/ZXSNB/p/16439586.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。