闭包和高阶函数

引子

最近发现一个问题:一部分写JS的人,其实对于函数式编程的概念并不是太了解。如下的代码片断,常常让他们觉得不可思议:

上述片断来自开源项目node-oauth2-server,这个authCodeGrant原型函数涉及到JS[……]

阅读全文

Promise,Q及Async

引子

在使用Node/JS编程的时候,经常会遇到这样的问题:有一连串的异步方法,需要按顺序执行,前后结果之间有依赖关系,形如(片断1):

之前也介绍过,这就是著名的回调地狱(Pyramid of Doom)。

Promise

[……]

阅读全文

BDD和Mocha框架

引子

今天造了个轮子:写了个深拷贝任意JavaScript对象的模块(事实上npm上已经有类似的模块,纯造轮子 🙂 虽然是个轮子,依然是需要测试的,保不齐还有除我之外的人会用到。那么问题来了,应该怎么测试?

从需求视角来看,这样的模块涉及到的数据类型繁多(Object/Array/Date[……]

阅读全文

使用File API 异步上传文件

离上次更新已经有一个月了,惭愧。

最近在做一个网盘的项目,不出意外的涉及到大文件的上传,那么问题来了:如何实时的显示文件上传的进度?

问题分解

似乎是老生常谈,几年前我做过类似的功能模块(基于.NET平台),方案思路:

  • 基于表单提交
  • Server端根据上传文件分配标识符(GUI[……]

阅读全文