问题标签 [ecmascript-harmony]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
536 浏览

node.js - 在 heroku 上运行最新的不稳定 nodejs(例如 0.11.6)

我一直没有找到答案:

在 heroku 上为现有应用程序安装/运行最新版本的 nodejs 的最简单方法是什么?

此处描述了 package.json 引擎的使用: https ://devcenter.heroku.com/articles/nodejs-support

但这不包括我所追求的最新的不稳定 0.11.x 分支。

0 投票
0 回答
307 浏览

javascript - yield* 与 ecmascript 6 上的 yield

我一直在修补最新 Node.js 上的新和谐生成器以及使用它们进行流控制的库,如cogen-rungene

的用法yield很清楚,但我注意到yield*后面两个库中嵌套生成器函数的语法,但第一个库中没有。我找不到任何关于它的参考。¿ 有什么区别和用例?

0 投票
1 回答
99 浏览

javascript - 是否可以在 ecmascript-harmony 中找出对象的类和模块

在阅读 ecmascript-harmony 规范时,我看不到任何有关检查实例/对象以查找有关其类和模块的信息的信息。我想要做的是能够检查一个 javascript 对象(即 es6 和谐类的一个实例)并找出:

  • 实例化它的类的名称
  • 定义类的模块的名称
  • 可能的超类及其模块的名称

有人知道这在 es6 中是否可行?

如果没有,是否有理由不可能或首选?

我可以想到一个可能的问题,即类没有像类与其他语言(即 Java)的包那样“绑定”到它们的模块。即,如果在 ModuleA 中定义 ClassA 并且 ModuleB 导入 ClassA 以稍后重新导出它会发生什么?

0 投票
1 回答
1037 浏览

javascript - ES6 类继承的性能

与在 Javascript 中创建“类”的实际方式相比:

到新的 ES6 类

找不到任何性能比较,但我真的对 __proto__/Object.setPrototypeOf 继承感兴趣,而不仅仅是 ES6 提供的“类糖”。

0 投票
2 回答
3284 浏览

node.js - Nodejs Harmony/ES6 中的地图集合坏了?

似乎 Nodejs 0.10.20 中的 Map 已损坏。我用 --harmony (包括 --harmony_collections 标志)启动它。
如需参考,请查看http://dailyjs.com/2012/10/15/preparing-for-esnext/
下面的示例在 Firefox 20.0 中运行。

在 Nodejs 控制台中,我执行以下操作

> var map = new Map([ ["name", "Nicholas"], ["title", "Author"]]);
未定义
> 地图
{}

所以构造函数初始化似乎不起作用。然后我按照 Firefox 示例进行操作,但它们大多不起作用:

> console.log(map.has("name")); // true
false
undefined
> console.log(map.get("name")); // "尼古拉斯"
undefined
undefined
> console.log(map.has("title")); // true
false
undefined
> console.log(map.get("title")); // “作者”
undefined
undefined
> console.log(map.size()); // 2
TypeError: Object # has no method 'size'
at repl:1:17
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl .js:122:7)
在接口。(repl.js:239:12)
在接口。
在 Interface._onLine (readline.js:202:10)
在 Interface._line (readline.js:531:8)
在 Interface._ttyWrite (readline.js:760:14)
在 ReadStream.onkeypress (readline.js:99: 10)

我很困惑这些基本的 Map 方法不起作用。我有 Nodejs 版本 0.10.20

0 投票
3 回答
3797 浏览

node.js - 在模块的运行时启用 V8 中的 Harmony ES6 功能?

节点 v0.10.20 提供了许多与和谐有关的选项,

我知道这些不是生产就绪的功能并且它们正在开发中,但其中许多已经足够好了。

有没有办法在运行时启用它们?

类似上面的东西。即使不只是模块级启用这些功能,最好确保它们在模块内部启用,而不是假设它们已启用。

0 投票
2 回答
5270 浏览

javascript - 使用生成器处理异常

所以最近生成器在 NodeJS 中出现了,我可以做类似的事情:

现在生成器很棒,因为它们让我在 JS 中执行 async/await。我真的很喜欢能够做到这一点。

但是,出现了一个问题。生成器使用 try/catch 块,所以假设我的代码如下所示:

(注意,Promise.coroutine 来自bluebird

注意到错误了吗?然而,有一个参考错误——catch 会吞下它。

当我在 95% 的情况下使用 try/catch 时,我想要捕捉的是逻辑错误和 I/O 错误,而不是语法或类型错误。我想非常非常清楚这些。回调使用err第一个参数,在生成器中我不确定替代品是什么。

如何处理 JavaScript 生成器代码中的异常处理?

一个好的解决方案可以让我保留堆栈跟踪。

0 投票
2 回答
2316 浏览

javascript - 其他人可以在他们的 Node.js REPL 中使用 let 语句吗?

可能吗?它似乎在我的 REPL 中不起作用,无论有没有--harmony.

我真正想做的是使用 for..of 循环,但 let 似乎更容易排除故障,并且可能是相同的原因。

有人知道这些的状态吗?

0 投票
11 回答
363586 浏览

javascript - 如何将集合转换为数组?

Set似乎是创建具有保证唯一元素的数组的好方法,但它没有公开任何获取属性的好方法,除了生成器 [Set].values,它以一种尴尬的方式调用mySet.values.next()

如果您可以map在 Sets 上调用和类似功能,这将是可以的。但你也不能那样做。

我试过Array.from了,但似乎只将类似数组的(NodeList 和 TypedArrays ?)对象转换为 Array。另一种尝试:Object.keys不适用于Sets,并且Set.prototype没有类似的静态方法。

所以,问题是:是否有任何方便的内置方法来创建具有给定 Set 值的 Array ?(元素的顺序并不重要)。

如果不存在这样的选择,那么也许有一个很好的惯用单线来做到这一点?喜欢,使用for...of,还是类似的?

0 投票
1 回答
588 浏览

javascript - 覆盖 Object.observe() 中的属性

我想使用 Chrome 的实验性Object.observe()来覆盖对象上设置的所有函数:

→ jsFiddle

不幸的是,控制台仍然显示"helloWorld() was called"。实际上是否可以覆盖对象观察者中当前更改的值?

由于这只是一个实验(没有生产代码!),我很欣赏任何类型的解决方案。