Tag: ecmascript 6

并行调用asynchronous/等待函数

据我所知,在ES7 / ES2016中,将多个await的代码放在一起,类似于链接.then()和promise,这意味着它们将一个接一个地执行,而不是在parallerl中执行。 所以,例如,我们有这样的代码: await someCall(); await anotherCall(); 我是否正确理解anotherCall()仅在someCall()完成时才被调用? 平行调用它们的最优雅的方式是什么? 我想在Node中使用它,所以也许有一个asynchronous库的解决scheme? 编辑:我不满意在这个问题提供的解决scheme: 由于非平行等待asynchronous生成器中的承诺放缓 ,因为它使用生成器,我在问一个更一般的用例。

在Babel 6.x中不能要求()默认导出值

在Babel 5.x中,我可以编写下面的代码: app.js export default function (){} index.js require('babel/register'); require('./app')(); 然后,我可以运行node index.js没有错误。 但是,使用Babel 6.x,运行下面的代码 index.es6.js require('babel-core/register'); require('./app')(); 导致错误 要求(…)不是一个函数 我想知道为什么?

函数方式来遍历范围(ES6 / 7)

使用更多function的方式做什么是最好的方式(与ES6 / ES7) let cols = []; for (let i =0; i <= 7; i++) { return i * i; } return cols; 我试过, return [ …7 ].map(i => { return i * i; }); 但是被翻译成 [].concat(7).map(function (n) { return n * n; }); 这不是我所期望的。 编辑: @pavlo。 的确,这是一个错误。 我正在使用JSX,例如,我想要7个div(未经testing) let cols = []; for (let […]

Node.js和ES6中的module.exports和export默认值

Node的module.exports和ES6的export default什么区别? 我试图找出为什么当我尝试在Node.js 6.2.2中export default时,我得到“__不是构造函数”错误。 什么工作 'use strict' class SlimShady { constructor(options) { this._options = options } sayName() { return 'My name is Slim Shady.' } } // This works module.exports = SlimShady 什么都行不通 'use strict' class SlimShady { constructor(options) { this._options = options } sayName() { return 'My name is Slim Shady.' } } […]

我怎样才能有条件地导入一个ES6模块?

我需要做这样的事情: if (condition) { import something from 'something'; } // … if (something) { something.doStuff(); } 上面的代码不能编译; 它会抛出SyntaxError: … 'import' and 'export' may only appear at the top level 。 我尝试使用System.import如下所示,但我不知道System来自哪里。 这是ES6的build议,最终没有被接受吗? 该文章中的“程序化API”链接将我转到不推荐的文档页面 。

我怎样才能用Jest模拟一个ES6模块导入?

我开始认为这是不可能的,但我仍然要问。 我想testing一个我的ES6模块以特定的方式调用另一个ES6模块。 与茉莉花这是超级简单 – 应用程序代码: // myModule.js import dependency from './dependency'; export default (x) => { dependency.doSomething(x * 2); } 和testing代码: //myModule-test.js import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { it('calls the dependency with double the input', () => { spyOn(dependency, 'doSomething'); myModule(2); expect(dependency.doSomething).toHaveBeenCalledWith(4); }); }); 与Jest相当的是什么? 我觉得这是一件很简单的事情,但我一直在试图弄清楚自己的头发。 我最接近的是用require s来replaceimport ,并将它们移动到testing/函数中。 […]

什么时候ECMAScript v 6成为标准

对不起,如果这之前已经问过,但我想知道什么时候ECMAScript v 6会变得比草稿,并成为新的标准。 去ECMA网站(262)仍然显示版本5.1是最新的,于2011年6月发布。 注意:( 我打算在接下来的几个月里对ECMA 262版本5.1进行一次讨论,我希望我不是在讨论过时的材料:)

使用webpack,ES6和Babel进行debugging

这似乎是应该相对简单的事情,但唉。 我有ES6课: 'use strict'; export class BaseModel { constructor(options) { console.log(options); } }; 和使用它的根模块: 'use strict'; import {BaseModel} from './base/model.js'; export let init = function init() { console.log('In Bundle'); new BaseModel({a: 30}); }; 我的目标是: 通过Babel通过以上,获得ES5代码 用webpack打包模块 能够debugging结果 经过一些试用,这是我有的webpackconfiguration: { entry: { app: PATH.resolve(__dirname, 'src/bundle.js'), }, output: { path: PATH.resolve(__dirname, 'public/js'), filename: 'bundle.js' }, devtool: 'inline-source-map', […]

如何以及为什么我会写一个扩展null的类?

在ES6中添加了JavaScript的类语法 ,显然使得扩展为null是合法的: class foo extends null {} 一些谷歌search显示, 在ES的讨论中提出这样的声明是错误的; 然而,其他评论者认为他们在这个基础上是合法的 有人可能想要创build一个具有{__proto__: null}原型的类 争论的这一面最终占了上风。 我无法理解这个假设的用例。 首先,虽然这样一个类的声明是合法的,但是实例化一个这样声明的类却不是。 尝试在Node.js或Chrome上从上面实例化类foo给了我非常愚蠢的错误 TypeError: function is not a function 而在Firefox做同样的事情给了我 TypeError: function () { } is not a constructor 在MDN当前的特性示例中显示,在类上定义构造函数并没有帮助。 如果我尝试实例化这个类: class bar extends null { constructor(){} } 那么Chrome / Node告诉我: ReferenceError: this is not defined Firefox告诉我: ReferenceError: |this| used uninitialized in […]

克隆除一个键以外的js对象

我有一个平坦的JS对象: {a: 1, b: 2, c: 3, …, z:26} 我想克隆除了一个元素的对象: {a: 1, c: 3, …, z:26} 最简单的方法是什么(如果可能的话,宁愿使用es6 / 7)?