Web蓝桥杯记录——封装 Promisefy 函数

1、代码及思路

// 封装 Promisefy 函数 -- 不太懂

const fs = require('fs')
const path = require('path')
const textPath = path.join(__dirname, '/test.md')

// 读取示例文件
fs.readFile(textPath, 'utf8', (err, contrast) => {
  // 通过promisefy转化为链式调用
  const readFileSync = promisefy(fs.readFile)

  readFileSync(textPath, 'utf8')
    .then((res) => {
      console.log(res === contrast) 
      // 此处结果预期:true,即promise返回内容与前面读取内容一致
    })
    .catch((err) => {})
})


const promisefy = (fn) => {
  // TODO 此处完成该函数的封装
  return (textPath,type)=>{
      return new Promise((resolve, reject) => {
        // fn 需要传入三个参数
      fn(textPath,type,(err,result)=>{
        if(err){
          reject(err)
        }else{
          resolve(result)
        }
      })
    })
  }

}

module.exports = promisefy // 请勿删除该行代码

2、知识点记录 

       手写promise

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值