小虾虎鱼

小虾虎鱼

webpack2自定义插件修改输出的内容

前几年火爆的seajs如今慢慢的要被淘汰了,随着webpack出来后,seajs和requirejs都逐渐的被取代了。 最近一个老的项目要增加一个比较复杂的功能,如果按照以前的写法,这个功能写完后这个js文件应该有过千行代码(曾经很以为荣的写过千行代码的js文件,现在回头看看就是挖坑)。为了使代码更容易阅读,就用上了webpack。 由于项目是前两年用seajs写的,那么打包出来的内容必须是这样的:

define(function(require,exports,module){
    /// ... 代码
});

nodejs v8中使用util.promisify()

如果你曾经使用Javascript,你必须有经验的回调。Javascript以其内置的异步哲学而闻名。从标准内置模块到其他框架和库,回调无处不在。这就是在Javascript中完成异步编程。但是回调有一个黑暗的一面。这叫Callback Hells

回调地狱的解决方案是Promises。而不是通过回调同步返回值或传递结果,我们可以返回一个Promise,我们将来会返回一些值或错误。 有许多像好的库如Bluebird和Q可以用来处理Promise。但是内置的模块和很多其他库不能使用Promises。这些库能够将传统的回调方法转换为Promise,在Node v8中我们现在可以使用util.promisify来处理回调方法。根据Node.js的文档:

util.promisify 采用常见的Node.js回调方式,即以(err,value)=> ...回调为最后一个参数,并返回一个Promise。

 2017/06/10 22:37 阅读全文 »

如何在vscode中调试async函数

都知道Node 7.0默认没有开启ES7的Async函数,需要启用该函数必须在启动命令中添加--harmony_async_await参数,如:node --harmony_async_await index.js

注意:--harmony_async_await参数必须在index.js前面。

 2016/11/23 10:03 阅读全文 »

使用async和await控制爬虫执行

为了解决js的回调嵌套问题(金字塔),ES6新增了PromiseGenerator来解决此问题。但我个人觉得Promise需要不断then,虽然没有出现金字塔现象,但总觉得还不够直观,而Generator也需要next依然不够直观易懂。随着Nodejs 7.0的发布,是时候玩玩Async函数了。 今天刚好用Async函数来做了一个爬虫,个人觉得代码的易读性比PromiseGenerator好。如果你还不会Async,可以看看阮一峰写的文章

 2016/11/09 22:34 阅读全文 »