问题标签 [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 投票
3 回答
17407 浏览

javascript - 使用 JavaScript ES6 箭头函数的即时函数

有谁知道如何使用 ES6 箭头语法编写立即函数?

这是 ES3/5 的做法:

我尝试了以下方法,但unexpected token在最后一行出现错误。

你可以在这里测试:http: //www.es6fiddle.net/hsb8bgu4/

0 投票
1 回答
736 浏览

javascript - 测试nodejs和谐生成器方法

假设你有以下 JS 函数:

您可以在带有 ES6 生成器的 node.js 上使用它来等待该操作发生,例如:

为了测试我做了这样的事情,使用 mocha 和 sinon(和 mocha-sinon):

但我得到的只是回调永远不会被调用,因为 addToDB() 在调用 save 的回调之前退出。

你将如何测试它?

0 投票
2 回答
10038 浏览

javascript - 使用 JavaScript ES6 模块导入现有库

如何使用 JavaScript 的 ES6 模块加载和运行现有库?

例如,假设我需要加载一个现有的 polyfill:

如何在poly不更改源的情况下运行导入的脚本并将其属性加载到当前命名空间中?

这里有两个实际问题可以帮助澄清我要解决的问题:

  1. 我有一个名为rafPolyfill.jswindow.requestAnimationFrame 的脚本。我需要将它导入全局范围并在加载后立即运行它。<script>使用标签很容易做到这一点:

它运行并将自身加载到全局范围内。使用 ES6 模块如何做到这一点?

  1. 我有另一个脚本Font.js,它是字体的预加载器。它让您可以像这样创建新的字体对象:

    var 字体 = 新字体();

我通过使用脚本标签加载 Font.js 来使用它,如下所示:

如果不访问、更改或理解此脚本的源代码,如何使用 ES6 模块以与使用<script>标签相同的方式加载和使用?我只需要这些脚本在加载时运行并照顾好自己。

一个可能的解决方案可能是使用模块加载器 API:

http://wiki.ecmascript.org/doku.php?id=harmony:module_loaders

本文档描述了加载器的全局绑定System,但恐怕我没有足够的词汇来完全理解它试图解释的内容。对解码本文档的任何帮助将不胜感激!

0 投票
1 回答
1697 浏览

javascript - 如何在 node.js 中使用 Promise

所以,我有一个支持 Promise 的 nodejs:

但是当我尝试使用 Promises 时,我遇到了一个错误:

我的要点中的源代码

我做错了什么?此外,我尝试运行生成器示例并且它正在工作,因此这意味着除了承诺之外启用了 es6 功能

0 投票
1 回答
663 浏览

google-chrome - Chrome 中的 ES6 符号

我正在 Google Chrome 中试验新的 ES6 符号,在 Chrome 标志中启用“实验性 JavaScript”后,我可以new Symbol()在我的代码中使用。

但是,当我尝试运行以下代码时:

我收到以下错误:

TypeError: Conversion from symbol to string

我的代码有什么问题?

谢谢!

0 投票
3 回答
371 浏览

javascript - ES6 Template String testbed

I'm really interested in finding out about ES6 Template Strings and have been doing a little bit of reading on the feature.

However now that Chrome Canary does not support it (although maybe I'm wrong about that!) is there anywhere/anything I can use to try out this new functionality? Any browser beta around that does?

I've already enabled Experimental Javascript Features inside chrome://flags

0 投票
1 回答
382 浏览

javascript - 解构返回未定义的变量

我正在尝试 ES6 的新解构特性,但在理解它或让它工作时遇到了一些麻烦。

我希望在控制台中看到,"asd"function() { ... }我得到undefined了两者。

使用火狐 28.0

0 投票
1 回答
199 浏览

javascript - “新”和直接调用生成器函数有什么区别?

我知道“新”和直接调用普通函数之间的区别。

但是生成器函数的情况如何?

例如:

好像他们是一样的?

0 投票
1 回答
953 浏览

node.js - 节点无法启用和谐功能

尝试运行这些新功能,如http://h3manth.com/new/blog/2013/es6-on-nodejs/所示,特别是我本地节点环境中的生成器。当我node --harmony --use-strict es6.js在 0.11.4 之前的任何 Node 版本上运行时,任何原因都会出现错误

它适用于任何版本 0.11.4 及更高版本,但是当--debug-brk在那里添加语句时,我得到

不知道为什么它给了我启用和谐的选项,但在以前的版本中没有使用它,为什么我不能调试更高版本?

0 投票
2 回答
139 浏览

javascript - 发电机良率差

假设我们有以下生成器函数:

我们还有两个生成器产生以上生成器:

有人知道 之间有什么区别吗yield gen1 yield *gen1?发电机有什么作用*