Tag: ecmascript 6

NodeJS不寻常的要求 – 这里发生了什么?

请参阅https://nodejs.org/api/child_process.html上的文档 接下来会发生什么?为什么这样做? const { exec } = require('child_process'); 根据我的理解,这只是将exec包装到另一个对象中 var a = { exec } // a is now { exec: exec } 但是那里有一个任务.. -Mind Blown-

TestCafe – 如何检查Web元素是否存在或不存在未通过测​​试?

我试图编写一个脚本,需要调整它的工作stream行为取决于CSSselect器find一个特定的浏览器对象是否存在或不存在。 我不想使用document.getElementByID方法,因为这在技术上不是CSSselect器,而且我们的整个企业在CSSselect器上是标准化的,所以任何走过DOM然后CSSselect器的东西都不会超过我们的代码审查过程无论如何。 var thing = await things.thingSelector(thingName); if (await t.expect(thing.exists).notOk()) { await t.click(things.OpenThing(thingName)); } else { return false; } return true; 在哪里thingSelector是: const thingSelector = name => Selector('p.thing-header-title span') .withText(name) .parent('div.thing'); OpenThing在哪里: const OpenThing = name => thingSelector(name) .find('a.thing-footer-item') .withText('Open'); 我需要能够继续执行,如果对象不存在,我检查它是否存在,或者如果对象在那里,我检查它不存在,以及对象不存在的情况下它不存在,对象不存在,我检查它不存在。 在所有情况下,我仍然需要继续工作stream程。 我已经尝试了逻辑硬币的双方: if (!await t.expect(thing.exists).ok()) 和 if (await t.expect(thing.exists).notOk()) 如果其中一个在一个场景中没有失败,那么另一个在另一个场景中将失败,另一个在第一个场景没有失败的情况下将失败。 我需要的东西,会给我的逻辑,但永远不会失败的脚本执行,并仍然允许我返回True或False取决于对象是否存在或不存在。 预先感谢您帮助我解决这个问题,同时也学习和发展我的Javascript技能!

为什么这个生成器返回一个函数而不是一个值

基本上,我试图做我的koa应用程序的HTTP请求,并想知道我会做错什么 var request = require('koa-request'); var beatsGen = beats(); var response1 = beatsGen.next().value; function *beats (){ var options = { url: 'https://api.github.com/repos/dionoid/koa-request', headers: { 'User-Agent': 'request' } }; var response = yield request(options); } 当我控制日志响应1这是我得到的 respone from beats is function (callback) { _request(uri, options, function (error, response, body) { callback(error, response); }) } 我认为response1将是包含callback的body参数而不是函数本身的object的someType。 那么,为什么我得到的函数作为生成器.next()。值? […]

我怎样才能强制在Coffeescript 1.9使用生成器?

CoffeeScript支持生成器现在,但是,我发现只有你使用yield关键字,那么你的函数将被编译为生成器,这里是我的问题,我用koa写我的代码,而一些中间件我不需要asynchronous逻辑,所以我不CoffeeScript认为这是一个正常的function,但是, koa说: app.use() requires a generator function T ^ T,任何人都有一个解决scheme? 谢谢!

编译成CommonJS不会产生NodeJS可用的文件

给定这里提供的语法(标准的ES6模块导入/导出),以及下面的文件,打字稿编译器(TSC)build立文件,将抛出Error: Cannot find module时使用NodeJS。 这是一个简单的例子: input文件 SRC / main.ts import {Example} from 'example'; let e = new Example(); SRC / example.ts export class Example {} 汇编 请注意,从Windows机器上使用npm install -g typescript版本1.5.0-beta的tsc。 tsc –rootDir src –outDir bin 输出文件 斌/ main.js var example_1 = require('example'); var e = new example_1.Example(); 斌/ example.js var Example = (function () { […]

函数名可以在node.js中configuration吗?

我试图写一些JavaScript来运行客户端和服务器端。 我想dynamic重命名函数(以​​帮助debugging等)。 我有以下代码: function genericFunction() {} Object.defineProperty(genericFunction, 'name', {writable: true}); genericFunction.name = 'specificFunction'; console.log(genericFunction.name); 在铬(v43)中,如预期的那样输出“特定function”。 但是,在node.js(v0.10)中,我得到: TypeError:无法重新定义属性:名称 我已经做了一些debugging,这似乎是不同的输出之间的差异 console.log(Object.getOwnPropertyDescriptor(function () {}, 'name').configurable); 在铬是真的,但node.js输出false。 我对规范的理解(非常有限)是对于函数名称,可configuration应该始终为真。 我在阅读规范时错过了什么? node.js是否使用不同的规范说,名称不应该是可configuration的? 还是我绊倒了一个真正的bug?

我应该在ES6节点项目中使用多less承诺?

在官方的蓝鸟承诺页面中写道,如果你使用的是node.js,那么我不太可能自己写承诺。 自从我开始一个新项目以来,我发现我所有的代码都围绕着诺言。 例如,我有一个数据库连接器,它返回一个承诺,一个承诺承诺的快速路由,testing承诺,承诺testing承诺,一般我没有写任何接收callback的函数。 我应该写callback模块,如果需要promisify他们? 有什么缺点?

Babel 6不会传输我的代码

这是我的代码 require('babel-register') require('babel-polyfill') const Koa = require('koa'); const app = new Koa(); // logger app.use(async (ctx, next) => { const start = new Date; await next(); const ms = new Date – start; console.log(`${ctx.method} ${ctx.url} – ${ms}ms`); }); // response app.use(ctx => { ctx.body = 'Hello World'; }); app.listen(3000); Koa v2.0采用async/await的例子。 不幸的是它不工作。 我得到以下错误: app.use(async (ctx, […]

Javascript .contains()在Babel中是否可用于Node和React?

基本上寻找替代"jdklajsdf".indexOf('d') !== -1 ,与最新的巴别。 也用于数组。

Babelify和本地节点模块

当使用Babelify和Browserify时,有没有办法import本地节点模块(例如crypto , fs , path )? 例如: 'use strict'; import $ from 'jquery'; import fs from 'fs'; // <—— this line causes an error var data = JSON.parse(fs.readFileSync('foo.json', 'utf8')); $(document).ready(function () { // stuff }); 当我尝试运行它时,Browserify给了我这个错误: 错误:在parsingfile:/ home / vincent时尝试静态调用{ readFile: [Function: readFile], readFileSync: [Function: readFileSync], readdir: [Function: readdir], readdirSync: [Function: readdirSync] } /www/project1/resources/js/foo.jsparsing文件时:/home/vincent/www/project1/resources/js/foo.js 我也尝试了以下相同的结果: […]