Nodejs 8 在 util 包里新增了 promisify() .这个方法基本和 bluebird 的 promisify() 作用一样,即把最后一个参数是 callback 函数的函数变成返回 promise 的函数: 下面代码,用 expressjs 做载体,创建了一个 web API,延迟 3 秒后随机返回标题为 Success 或者 Custom Error 的页面. delayP() 的作用与 bluebird 的 promise.delay() 方法作用相仿,可以在 promis…
Node.js 8带来了 很多新特性 .其中比较值得注意的,便有 util.promisify() 这个方法. util.promisify() 虽然 Promise 已经普及,但是 Node.js 里仍然有大量的依赖回调的异步函数,如果我们每个函数都封装一次,还麻烦. 所以 Node8 就提供了 util.promisify() 这个方法,方便我们快捷的把原来的异步回调方法改成返回 Promise 实例的方法,接下来,想继续用队列,还是 await 就看需要了. 例如 读取文件状态的操作: v…
util.promisify是在node.js 8.x版本中新增的一个工具,用于将老式的Error first callback转换为Promise对象,让老项目改造变得更为轻松. 在官方推出这个工具之前,民间已经有很多类似的工具了,比如es6-promisify.thenify.bluebird.promisify. 以及很多其他优秀的工具,都是实现了这样的功能,帮助我们在处理老项目的时候,不必费神将各种代码使用Promise再重新实现一遍. 工具实现的大致思路 首先要解释一下这种工具大致的实…
Since Node.js V8.0+, it introduces a 'util' libaray, which has a 'promisfy' function. It can conver a callback based function to promise based function: const util = require('util'); const crypto = require('crypto'); // convert a callback based code…
利用原生JS实现类似浏览器查找高亮功能 在完成 Navify 时,增加一个类似浏览器ctrl+f查找并该高亮的功能,在此进行一点总结: 需求 在.content中有许多.box,需要在.box中找出搜索的字符串,再将无搜索结果的.box隐藏掉,此外还要将字符串高亮.这个页面用vue.js实现了数据交互,不想用jquery来实现得查找高亮功能,得用原生js来实现该功能. 原理 将各个.box的文本内容提取,利用正则判断是否匹配字符串,若无搜索字符串,则隐藏该.box:否则继续找到具体的与该字符串匹…
导读:本文利用android4.0的一个原生漏洞来伪造短信.无须声明任何权限即可伪造发送方为任何号码的短信给用户. android4.0发布已经是很久很久很久很久以前的事情了,这个漏洞早就报了出来,之所以现在才写这篇文章,就是觉得,该升级的基本已经都升级了,该打补丁的基本都已经打了补丁,所以现在差不多是时候了. 原生android4.0系统中,Mms.apk的manifest有这样一段 <service android:name=".transaction.SmsReceiverServi…
摘要:数据管理平台在当今社会中运用十分广泛,我们在应用过程中,要对数据进行存储,管理,以及删除查询等操作,而我们在实际设计的时候,大牛们大多用到的是JQuery,而小白对jq理解也较困难,为了让大家回顾一下原生js,也为了让初学者对js熟练掌握,我们利用js进行设计,里面涉及到函数,事件,对象,已经存储,代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&…
摘要:数据管理平台在当今社会中运用十分广泛,我们在应用过程中,要对数据进行存储,管理,以及删除查询等操作,而我们在实际设计的时候,大牛们大多用到的是JQuery,而小白对jq理解也较困难,为了让大家回顾一下原生js,也为了让初学者对js熟练掌握,我们利用js进行设计,里面涉及到函数,事件,对象,已经存储,代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&…
1.promisify function toPrimisify (fn){ return function (...args){      return new Promise(function(resolve,reject){           fn(...args,function(err,data){            err?reject(err):resolve(data)          })     })}let read2 = toPrimisify(fs.readFi…
一.部署架构如下 每台服务器准备2个节点,一主一从,主节点为另外两台其中一台的主,从节点为另外两台其中一台的从. 二.准备6个节点配置文件 在172.28.18.75上操作 cd /etc/redis vim redis-25701.conf 内容如下 bind 172.28.18.75 port 25701 masterauth "Zaq1xsw@" requirepass "Zaq1xsw@" protected-mode yes daemonize yes d…