Tag: ecmascript 6

在module.exports中新增的目的是什么?

我有一个testing分为3个部分。 主页面对象页面,页面有问题的HomePage和testing本身。 我想要HomePage来扩展Page对象。 但是我发现的是 – 如果在页面类中我使用: module.exports = new Page() 我得到错误ERROR: Class extends value #<Page> is not a function or null 但是,如果我使用 module.exports = Page 它完美的作品。 有人可以解释为什么这样吗? 这是因为页面对象本身只是与每个页面的父页面,例如HomePage或LoginPage或任何其他页面构造? class Page { constructor() { this.title = 'My Page'; } open(path) { browser.url('/' + path); } } module.exports = Page; == var Page = require('../page-models/Page'); class HomePage […]

在只有nodejs的环境中,在ES6 Module / Class中定义“真正的”私有方法,而不会泄漏任何信息

我知道,没有真正的私人方法INSIDE ES6类。 不过,我正在玩一下,发现了一些好东西 – 也许… 正如我所说,不可能不公开对象的属性。 但是我试图实现一些OOP编程,因为我把我的类分成单独的文件,然后导出这些类,如: class MyClass { constructor() { /** * Initialize stuff… */ } myMethod() { /** * Do public stuff… */ } } // expose class to environment. export default MyClass; 所以我可以导入类: import MyClass from './MyClass.js'; 当然myMethod可以从导入模块的其他文件访问。 Sinced我需要的variables和函数只能由我尝试过的类访问: // private variable outside of class scope but still accessible. let possiblePrivateVariable […]

如何在JavaScript中解构对象时绑定方法?

如何在JavaScript中解构对象时绑定方法? const person = { getName: function() { console.log(this); } }; var a = person.getName; var b = person.getName.bind(person); var {getName: c} = person; person.getName(); //=> {getName: [Function]} a(); //=> window or global b(); //=> {getName: [Function]} c(); //=> window or global 我想要clogin控制台的“父”对象{getName: [Function]} 。 在一个解构行中解构一个对象时,是否有办法绑定所有方法?

如何使用ES6语法导入类? (没有巴比伦)

我有一个ES6类与默认导出文件: accessmanager.js export default class AccessManagerClient { constructor(){ … } } 我想要像这样导入它: anotherFile.js import AccessManagerClient from '../someFolder/accessmanager'; 当我运行我的规范时,我得到一个错误: import AccessManagerClient from '../someFolder/accessmanager'; ^^^^^^ SyntaxError: Unexpected token import 我有这样的npm和节点版本: $ npm -v 5.3.0 $ node -v v8.0.0

如何处理返回一个内部callbackvariables?

如何在callback中访问variables,而不必先将其重新分配给variables? 例如,下面的代码工作: let volume = 0; loudness.getVolume((err, vol) => { volume = vol; }); 但是,如果我希望它可以直接分配给一个const 。 以下返回未定义: const volume = loudness.getVolume((err, vol) => vol));

是否有es6箭头function的polyfill?

是否有es6箭头function的polyfill? 下面的代码在IE中抛出语法错误exception,是否有一个polyfill使IE支持箭头函数? var myFunc = ()=>{ alert('es6'); } myFunc(); 注意 :我不想使用任何transpiler 。 提前致谢

如何使用ES6 super在子构造函数中调用父方法?

情况: 我使用其他属性(timestamp,id)来扩展Node.js(v.8.4.0)Error对象,然后扩展这个对象以获得更精细的error handling。 class MyError extends Error { constructor (msg) { super(msg); this.id = uuid(); this.timestamp = Date.now(); // I reckon this can be replaced by this.init(this) ? this.name = this.constructor.name; Error.captureStackTrace && Error.captureStackTrace(this, this.constructor); } init (self) { self.name = self.constructor.name; Error.captureStackTrace && Error.captureStackTrace(self, self.constructor); } } 我希望能够在子错误中不重复Error.captureStackTrace和this.name调用。 所以我创build了一个我在孩子中使用的init函数: class GranularError extends MyError { […]

如何捕获http.get上的错误

我有一些看起来像这样的http.get代码 http.get(url, function (response) { var data = ''; response.on('data', function (x) { data += x; }); response.on('end', function () { var json = JSON.parse(data); console.log(json); }); }); 如果提供了无效的URL / API端点,如何处理此错误?

asn1中意外的令牌(len)

我发布这主要是为了别人的好处,因为花了几个小时的研究来深入研究这个问题,我不认为它是与我们的应用程序隔离的。 我最近重新安装了所有npm包在我们的babelified应用程序,并开始在构build过程中出现错误,如“意外的令牌(len)”。 经过相当多的挖掘,我开始findconst,让一个名为asn1.js的包。

调用多个API而不需要太多的嵌套

我需要根据前一次调用的结果调用多个端点。 return http.get('url1') .then(response1 => { return response1.data }) .then(data => { http.get('url2' + data) .then(response2 => { return response2.data }) // etc … until the 'nth url' }) 它可以相当嵌套。 有没有办法使这个变平坦,也许使用发电机?