当前位置: 首页 > news >正文

属于c2c的网站是实验中心网站建设

属于c2c的网站是,实验中心网站建设,建筑公司网站董事长致辞,巩义公司做网站本篇文章又是一期优雅的代码编程介绍———回调函数。 传统的nodejs编程都是这样的 const fs require(fs) fs.readFile(test.txt,utf8, function(err, dataStr){if(err){} }) 嵌套层级如果多了就成回调地狱了。如果我们将这种风格的代码转换成这样呢? const fs …

本篇文章又是一期优雅的代码编程介绍———回调函数。

传统的nodejs编程都是这样的

const fs = require('fs')
fs.readFile('test.txt','utf8', function(err, dataStr){if(err){}
}) 

嵌套层级如果多了就成回调地狱了。如果我们将这种风格的代码转换成这样呢?

const fs = require('fs');
const {promisfy, waitFor, promisfyNoError} = require('promisfy');
const readFile = promisfy(fs.readFile);
let content = await readFile('myfile.txt', {encoding:'utf8'});
return content;
http.createServer(80, function(req, res) {async function handleRequest(req, res) {if (req.method === 'POST') {req.body = await waitFor(req.sock, 'data');}}
}) 

这种promisfy的风格是不是简洁优雅,一行就搞定了。

安装

npm install --save promisfy 

promisfy包里封装了以下三个函数

  • promisfy: 处理fs这种回调API
  • waitFor: 处理监听事件和流的,对象具有xx.on('event'),xx.on('data'),xx.on('end')这些监听事件。
  • promisfyNoError: 处理回调没有错误抛出的API

源码

  • 参数:传入需要promisfy的函数和上下文
  • 返回值:返回一个新函数
const readFile = promisfy(fs.readFile);
let content = await readFile('myfile.txt', {encoding:'utf8'}); 

解析代码

1.通过agruments内置对象取到函数readFile的参数。
2.调用readFile返回的是一个Promise对象。
3.Promise里声明了一个callback函数。callback传入的参数结构是第一个为err对象,剩余参数为成功的结果。err对象通过reject函数处理,剩余参数用resolve函数处理。
4.处理函数的参数fnArgs,argscallback
5.最后调用这个函数并传入上下文。

  • promisfyNoError:和上述逻辑一样除去了err对象的部分;
  • waitFor:对普通事件监听和流处理做的promisfy封装;

结束语

对于回调这种风格的函数还有事件监听和数据流进行promisfy处理后,就节省了很多很多代码行数,清晰明了。优雅的风格依然还在,还能做一个艺术工程师。

类似的,我们在微信网页开发的时候使用weixin-jssdk,也可以自己封装一个promisfy风格的函数。我们的代码里也不会有看着费劲的屎山了。

wx.request({xxx:'',xxx:'',xxx:'',success(){},fail(){}
}) 

最后

为大家准备了一个前端资料包。包含54本,2.57G的前端相关电子书,《前端面试宝典(附答案和解析)》,难点、重点知识视频教程(全套)。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

http://www.yayakq.cn/news/506010/

相关文章:

  • 政务内网网站建设方案wordpress 无法新建页面
  • 网站建设是编程吗学校官网主页网页设计
  • 单位网站建设流程网站报价表怎么做
  • 纺织行业网站怎么做吸引人岳阳手机网站制作
  • ppt模板免费下载网站哪个好最新营销模式有哪些
  • 那里有专业注册网站建设的潍坊网站制作案例
  • 齐河建设局网站六安企业网站seo多少钱
  • 网站备案幕布大小自适应网站模板建站
  • 有没有可以做翻译的网站网站建设分录怎么开
  • 广东网站建设排名网站建设到那可以学习
  • 网站开发属于软件开发行业吗徐州做网站软件
  • 在百度上做网站怎么做gui设计师
  • 上海做高端网站建设免费外贸网站在线
  • 大连网站哪家做的好?品牌怎么注册
  • 做视频网站服务器多少钱网站产品设计规范 模板
  • 网站cron做网站创业怎么样
  • 申请一个自己的网站西安建设和住房保障局网站
  • 用自己电脑做网站的空间网上书城网站开发外文参考文献
  • 手机网站开发免费视频教程网站建设需要哪些人
  • 广东哪家网站建设绵阳市城乡建设和规划局网站
  • 罗湖高端网站设计域名价格排行
  • 成都网站开发建设公司广告投放平台
  • 建设银行网站注册seo1网站查询
  • 网站底部固定广告代码跨境电商平台哪家最好
  • 网站维护工作内容百度网盘破解版
  • 做网站有什么用商务网站如何推广
  • 网站模板平台介绍自己做的网站的论文
  • 哪个网站做不锈钢好吉安市建设局施工管理站网站
  • 新网站建设银行提升转账额度学做ps的网站有哪些
  • 中国建设教育协会官方网站济南网站制作搜到