标签: ecmascript-next

TypeError:Object.entries不是函数

为什么我在尝试运行Node.js/Express服务器时仍然遇到此错误?

这是新款ES7的一部分吗?使用这些新功能,我需要什么才能运行应用程序?

javascript node.js express ecmascript-next

15
推荐指数
4
解决办法
2万
查看次数

async/await不能与fetch结合使用

我试图用ES7 async/ await一起fetch.我知道我很接近,但我无法让它发挥作用.这是代码:

class Bar {
    async load() {
        let url =  'https://finance.yahoo.com/webservice/v1/symbols/goog/quote?format=json';
        try {
            response = await fetch(url);
            return response.responseText;
        } catch (e) {
            return e.message;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用如下:

let bar = new Bar();
bar.load().then(function (val) {
    console.log(val);
});
Run Code Online (Sandbox Code Playgroud)

DEMO

出于某种原因,我总是深入catch了解消息

response is not defined
Run Code Online (Sandbox Code Playgroud)

有什么建议我做错了吗?

更新:正如评论中所建议的,它可能是一个问题fetch,所以我尝试了一个简化的(ES5)版本:

<!doctype html>

<html>
    <head>      
        <script>
            var url =  'https://finance.yahoo.com/webservice/v1/symbols/goog/quote?format=json';
            fetch(url, {method: 'get', mode: 'cors'}).then(function (response) {
                       console.log(response.responseText);
               });
        </script>
    <head>

   <body></body>
<html>
Run Code Online (Sandbox Code Playgroud)

仍然不起作用:(但是,如果我替换fetch它的工作原理: …

javascript async-await fetch-api ecmascript-next

14
推荐指数
1
解决办法
9491
查看次数

解构对象并忽略其中一个结果

我有:

const section = cloneElement(this.props.children, {
  className: this.props.styles.section,
  ...this.props,
});
Run Code Online (Sandbox Code Playgroud)

在里面this.props,我有一个styles我不想传递给克隆元素的属性.

我能怎么做?

javascript destructuring reactjs ecmascript-next

14
推荐指数
2
解决办法
7358
查看次数

ES6/Next:使用rest - grouping进行对象解构

我有:

const props = {
  gallery: [],
  select: () => null,
  one: 1,
  two: 2,
}
Run Code Online (Sandbox Code Playgroud)

我可以用它来构造它:

const {gallery, select, ...other} = props
Run Code Online (Sandbox Code Playgroud)

我现在有三个变量:

  • gallery =[]
  • 选择 =() => null
  • 其他 ={one: 1,two: 2}

是否有可能选择指定分组?

这样的事情(这不会起作用,但我希望看到我想要做的事情很清楚):

const {{gallery, select}: specific, ...other} = props
Run Code Online (Sandbox Code Playgroud)

所以我将有2个变量:

  • 具体 ={gallery: [], select: () => null}
  • 其他 ={one: 1,two: 2}

我可以在更高级别解决它并以这种方式构建道具:

const props = {
  specific: {
    gallery: [],
    select: () => null,
  },
  other: {
    one: 1,
    two: 2, …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-6 ecmascript-next

14
推荐指数
2
解决办法
333
查看次数

使用TypeScript中的最新JavaScript功能,例如ES2018

我已经尝试在他们的配置上搜索TypeScripts文档,似乎无法找到应该是一个简单问题的答案.

简单地说,如何配置typescript编译器以便它知道我们正在使用哪些JavaScript功能集?

因此,例如,ES2019落地,我想'哦,我想给我一些'.在那种情况下,我需要升级什么,以允许编译器进行转换和pollyfill它需要什么?

tsconfig中的lib选项让我困惑,文档没有解释可用的库.我也找不到任何直接的东西.

所以让我们说ES2019出来了,我为它添加了lib选项(假设会有一个).这是否意味着我现在可以使用ES2019功能?如果我希望支持ES2019中的所有内容,我是否需要为其下的每个其他版本添加lib?或者添加ES2019 lib是否提供了我所需要的一切?

这些图书馆来自哪里?它们是CoreScript核心库的一部分吗?为了获得更多我必须升级,或者我可以简单地升级一个单独的包,它会全部工作吗?

最后,这些lib提供了完全支持该版本规范的所有必要条件.或者它是功能的子集?

在我们的项目中,我们目前使用TypeScript版本2.5.3

我意识到这是很多问题所以任何有关任何信息或文档链接的信息都会非常感激.

compilation typescript ecmascript-next

13
推荐指数
1
解决办法
2187
查看次数

将功能*提升为异步功能*?

假设我有一个函数接受生成器并返回第一个n元素的另一个生成器:

const take = function * (n, xs) {
  console.assert(n >= 0);
  let i = 0;
  for (const x of xs) {
    if (i == n) {
      break;
    }
    yield x;
    i++;
  }
};
Run Code Online (Sandbox Code Playgroud)

用法如下:

const evens = function * () {
  let i = 0;
  while (true) {
    yield i;
    i += 2;
  }
};

for (const x of take(10, evens())) {
  console.log(x);
}
Run Code Online (Sandbox Code Playgroud)

现在想象一下,evens也是async(见这个答案的设置):

const evensAsync = async function * …
Run Code Online (Sandbox Code Playgroud)

javascript generator async-await babeljs ecmascript-next

11
推荐指数
1
解决办法
100
查看次数

JavaScript 中的私有 (#) getter

JavaScript 是否计划支持私有 getter/setter?

class Next {
  #private = 0
  get #computed() { // SyntaxError: Unexpected token (
    return this.#private + 1
  }
}
Run Code Online (Sandbox Code Playgroud)

如果不是,其背后的理由是什么?
我认为实施不会成为障碍。对功能本身是否有异议?

javascript private getter-setter ecmascript-next

11
推荐指数
1
解决办法
5676
查看次数

什么是ESNext?

我遇到过术语“ ESNext”,并且想知道它是否与EcmaScript相同。所以,我在这里有这些问题:

  • 什么是ESNext,实际上是什么?
  • 它是否指的是EcmaScript的任何特定版本?

javascript ecmascript-next

11
推荐指数
3
解决办法
1008
查看次数

是否可以将可选链与数组和映射(在 Javascript 中)结合起来?

我最近了解了Javascript 中的可选链,并在 React/NodeJS 项目中使用了它。效果很好。

我注意到我一直在将它与数组一起使用map,即使没有考虑太多——这似乎是一个自然的使用(这里items是一个数组,或者可能是undefined

        {items?.map(postListItem => ....
Run Code Online (Sandbox Code Playgroud)

也就是说,它将映射 ifexists items,但不会映射 if itemsis ,但如果我要调用undefined,它将避免任何运行时错误mapundefined

尽管如此,我不知道这是否是可接受的用途,或者我是否错误地使用了可选链。我寻找答案,但到目前为止还没有找到答案,这让我怀疑我使用不当。任何信息非常感谢!

javascript reactjs ecmascript-next

11
推荐指数
2
解决办法
1万
查看次数

React中是否仍然需要使用自动绑定和属性初始值设定项构造函数

我正在重构一个基于es6类的React组件,该组件使用普通的构造函数,然后绑定方法,并在该构造函数中定义状态/属性.像这样的东西:

class MySpecialComponent extends React.Component {
  constructor(props) {
   super(props)
   this.state = { thing: true }
   this.myMethod = this.myMethod.bind(this)
   this.myAttribute = { amazing: false }
  }

  myMethod(e) {
   this.setState({ thing: e.target.value })
  }
}
Run Code Online (Sandbox Code Playgroud)

我想重构这个,以便我自动绑定函数,并使用属性初始化器的状态和属性.现在我的代码看起来像这样:

class MySpecialComponent extends React.Component {
  state = { thing: true }
  myAttribute = { amazing: false }


  myMethod = (e) => {
   this.setState({ thing: e.target.value })
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我还需要构造函数吗?或道具也是autobound?我本来希望仍然需要构造函数和包含super(props),但我的代码似乎工作,我很困惑.

谢谢

ecmascript-6 reactjs ecmascript-next es6-class

10
推荐指数
2
解决办法
6193
查看次数