Promise解决回调地狱的问题

108 阅读1分钟

Promise解决回调地狱的问题

`//引入fs模块 const fs = require('fs');

//Promise函数

const p = new Promise((resolve,reject)=>{ fs.readFile("./resources/aaa.md",(err,data1)=>{ fs.readFile("./resources/bbb.md",(err,data2)=>{ fs.readFile("./resources/ccc.md",(err,data3)=>{ let result = data1 + '\r\n' + data2 + '\r\n' + data3 resolve(result); }) }) }) })

p.then(function(value){ console.log(value.toString()); },function(reason){ console.warn("读取文件失败!!!"); })

//解决以上回调函数的问题

function f1(){ return new Promise((resolve,reject)=>{ fs.readFile("./resources/aaa.md",(err,data)=>{ if(err) return reject(err) resolve(data) }) }) }

function f2(){ return new Promise((resolve,reject)=>{ fs.readFile("./resources/bbb.md",(err,data)=>{ if(err) return reject(err) resolve(data); }) }) }

function f3(){ return new Promise((resolve,reject)=>{ fs.readFile("./resources/ccc.md",(err,data)=>{ if(err) return reject(err) resolve(data); }); }); }

f1().then((value)=>{ console.log(value.toString()); },f2().then((value)=>{ console.log(value.toString()); },f3().then((value)=>{ console.log(value.toString()); })))`