Strange Loop 大会之 JavaScript 与流(Stream)

阅读数:605 2015 年 10 月 8 日

话题:JavaScript语言 & 开发

在今年的Strange Loop大会上,Pam Selle介绍了 JavaScript 中的流(stream)的概念,她认为这就是“我们需要的数据结构”。

Selle 认为流与典型的序列数据操作不同,它可以“让我们在没有列表结构的时候就可以进行列表操作,无需为其耗费太多精力以致恼怒不休。”

有些人可能对 Node 中流得概念很熟悉,Selle 带领人们回忆了 UNIX 命令行管道,又为大家讲解了 ES6 生成器为 JavaScript 增添的艺术色彩,后者是 ES6 标准的一部分,最重要的是,生成器是用function*声明的“可重用且可暂停的函数”,每当遇到yield语句便继续执行。这里有一个简单的示例:

复制代码
function* sayHello() {
yield "hello";
}

Selle 强调说她在项目中最喜欢用的三个库是:BaconJSHighlandJSRxJS。Angular JS 是当前流行的 JavaScript 框架,在它的推动下,RxJS 很可能在 2016 年突然火爆。在 Angular 2 中,observable 是一等实体,新的 Http 模块使用的正是 RxJS 的 observable。在最近有关 Angular 2 的调查中显示,38.7% 的被调查者表示他们计划使用 RxJS,只有 6.6% 的人选择了 BaconJS。另外,ES7 引入了一个有关observable 类型的提案,此类型正是基于 RxJS 风格的 observable 加以改进实现的。

最让 Selle 激动的是,人们会为流这一特性构想出无数的使用方式:

我的梦想是你们在未来能够做一些类似大数据可视化这样的事情,在我的想象范围内,这是可以用流特性做的最酷的事情,然而这仅仅只是一个开端。

使用gulp构建系统的前端开发者已经对流很熟悉了,在 gulp 中,命令是与使用 pipe() 函数执行构建步骤结合在一起的。

Selle 的演讲视频可以在Youtube上观看,她的幻灯片可以点击http://pselle.github.io/omgstreams/查看,明年的 Strange Loop 大会将于 2016 年 9 月 15-17 号在圣路易斯召开。

查看英文原文JavaScript Streams Introduced at Strange Loop