@ 浏览/ 高地
浏览器兼容高地!
此模块捆绑 高地地区 浏览器模块 !
高地地区
用于Node.js和浏览器的高级流库. 查看 高地网站 为更深入地 文档.
导言
重新思考 Java 脚本 工具 带, (中文(简体) ), 高地管理同步和同步代码很容易,只使用 标准JavaScript和类似节点流. 你可能熟悉承诺,事件 和召回,但移动 他们彼此之间,远非无缝。 幸好有更深层次的抽象 它可以释放我们的代码。 通过更新我们在阵列上使用的工具,并应用它们 我们可以丢弃管道 专注于重要的事情。 与高地,你可以调换 任意同步和同步的数据源,而不必 重写您的代码 。 该潜入了!
由 @caolan (英语)有了朋友的帮助和耐心 留点小费 或者说 叉开这个 :) (中文(简体)
实例
用作节点.js模块
var _ = require('highland');
转换为/从高地溪流
_([1,2,3,4]).toArray(function (xs) {
// xs is [1,2,3,4]
});
在流上映射
var doubled = _([1,2,3,4]).map(function (x) {
return x * 2;
});
并行读取文件( 一次4个)
var data = _(filenames).map(readFile).parallel(4);
处理错误
data.errors(function (err, rethrow) {
// handle or rethrow error
});
连接到节点流
data.pipe(output);
从节点流输入数据
var output = fs.createWriteStream('output');
var docs = db.createReadStream();
// wrap a node stream and pipe to file
_(docs).filter(isBlogpost).pipe(output);
// or, pipe in a node stream directly:
var through = _.pipeline(_.filter(isBlogpost));
docs.pipe(through).pipe(output);
处理事件
var clicks = _('click', btn).map(1);
var counter = clicks.scan(0, _.add);
counter.each(function (n) {
$('#count').text(n);
});
