node.js 简单实现 util实用工具promisify

一、node.js 简介

Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的、可扩展的网络应用。Node.js采用事件驱动非阻塞I/O模型,使其变得轻量和高效,非常适合构建运行在分布式设备的数据密集型的实时应用。

运行于浏览器的JavaScript,浏览器就是JavaScript代码的解析器,而Node.js则是服务器端JavaScript的代码解析器,存在于服务器端的JavaScript代码由Node.js来解析和运行。

JavaScript解析器只是JavaScript代码运行的一种环境,浏览器是JavaScript运行的一种环境,浏览器为JavaScript提供了操作DOM对象和window对象等的接口。Node.js也是JavaScript运行的一种环境,Node.js为JavaScript提供了操作文件、创建HTTP服务、 创建TCP/UDP服务等的接口,所以Node.js可以完成其他后台语言(Python、PHP等)能完成的工作。

 

二、node.js util.promisify

node util.promisify的功能是将node 模块的回调函数( fs.readFile )转成promise异步函数。

代码如下:

const fs = require('fs'); //引入fs

function promisify(arg){ //先传入要转换的fs函数
    return (...args)=>{   //返回第二层函数,用来接收参数
      return new Promise((reslove,reject) => { //返回promise 
                arg(...args,(err,data)=>{  
                  if (err) {
                     reject(err)
                  }else {
                      reslove(data); //返回数据
                  }
                })
      })
    }
}


const readdir = promisify(fs.readdir);//传入fs函数

(async ()=>{
  const read = await readdir('./'); //传入参数并返回promise再由async/await转成同步
  console.log(read); //打印数据
})()

//不使用async同理

readdir('./').then(res => {
    //do something...
}).catch(err =>{
    //捕获错误信息
})

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值