Articles of ecmascript 6

Cumprir (não resolver) prometer com outra promise

Eu quero cumprir uma promise com alguma outra promise. O ponto é que eu realmente quero ter access à segunda promise (ainda pendente) assim que a primeira promise for cumprida. Infelizmente, parece que só consigo obter o valor de resolução da segunda promise quando ambas as promises forem cumpridas. Aqui está o caso de uso […]

Como saber quando todas as promises são resolvidas em um parâmetro dynamic “iterável”?

Meu problema é que eu não sei como saber quando uma matriz de promise dinâmica tem todas as promises resolvidas. Aqui um exemplo: var promiseArray = []; promiseArray.push(new Promise(){/*blablabla*/}); promiseArray.push(new Promise(){/*blablabla*/}); Promise.all(promiseArray).then(function(){ // This will be executen when those 2 promises are solved. }); promiseArray.push(new Promise(){/*blablabla*/}); Eu tenho um problema aqui. O comportamento Promise.all será […]

ES6 – Converte de ‘require’ para ‘import’

Se a alternativa para: var Foo = require(‘foo’); é: import Foo from ‘foo’; Qual é a alternativa para: var Bar = require(‘foo’).batz Poderia ser: import {batz} from ‘foo’ ?

Função de seta sem chaves

Eu sou novo no ES6 e no React e continuo vendo funções de seta. Por que algumas funções de seta usam chaves após a seta de gordura e outras usam parênteses? Por exemplo: const foo = (params) => ( Content ); vs. const handleBar = (e) => { e.preventDefault(); dispatch(‘logout’); }; Obrigado por qualquer ajuda!

Por que é deixar mais lento que var em um loop for em nodejs?

Eu escrevi um benchmark muito simples: console.time(‘var’); for (var i = 0; i < 100000000; i++) {} console.timeEnd('var') console.time('let'); for (let i = 0; i < 100000000; i++) {} console.timeEnd('let') Se você está usando o Google Chrome, pode experimentá-lo aqui (já que o NodeJS e o Google Chrome usam o mesmo mecanismo de JavaScript, embora […]

Como posso importar condicionalmente um módulo ES6?

Eu preciso fazer algo como: if (condition) { import something from ‘something’; } // … if (something) { something.doStuff(); } O código acima não compila; Ele lança SyntaxError: … ‘import’ and ‘export’ may only appear at the top level . Eu tentei usar System.import como mostrado aqui , mas não sei de onde o System […]

Não é possível exigir o valor de exportação padrão () no Babel 6.x

No Babel 5.x, posso escrever o seguinte código: app.js export default function (){} index.js require(‘babel/register’); require(‘./app’)(); Então, posso executar o node index.js sem erros. No entanto, usando o Babel 6.x, executando o seguinte código index.es6.js require(‘babel-core/register’); require(‘./app’)(); resulta em um erro requer (…) não é uma function Eu quero saber porque?

ES6 – Chamar método estático dentro de uma class

Eu tenho essa class que faz uma chamada interna para um método estático: export class GeneralHelper extends BaseHelper{ static is(env){ return config.get(‘env:name’) === env; } static isProd(){ return GeneralHelper.is(‘prod’); } } Existem palavras-chave que eu possa usar para replace o nome da class na linha abaixo: GeneralHelper.is(‘prod’); No PHP existem self , static etc. O […]

Destaque de syntax do Visual Studio 2015 JSX / ES2015

Como posso obter um realce de syntax adequado no Visual Studio 2015 para JSX com código ES2015? Ele funciona bem se eu remover as palavras-chave de import e export : Acabei de atualizar para o Visual Studio 2015 Enterprise Update 1, mas ainda permanece o mesmo.

Importação do ES6 usando o caminho de login (‘@’) em um projeto vue.js usando o Webpack

Estou começando um novo projeto vue.js, então usei a ferramenta vue-cli para criar um novo projeto de webpack (por exemplo, vue init webpack ). Enquanto caminhava pelos arquivos gerados, notei as seguintes importações no arquivo src/router/index.js : import Vue from ‘vue’ import Router from ‘vue-router’ import Hello from ‘@/components/Hello’ // <- this one is what […]