为什么我在尝试运行Node.js/Express服务器时仍然遇到此错误?
这是新款ES7的一部分吗?使用这些新功能,我需要什么才能运行应用程序?
我试图用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)
出于某种原因,我总是深入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它的工作原理: …
我有:
const section = cloneElement(this.props.children, {
className: this.props.styles.section,
...this.props,
});
Run Code Online (Sandbox Code Playgroud)
在里面this.props,我有一个styles我不想传递给克隆元素的属性.
我能怎么做?
我有:
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)
我现在有三个变量:
[]() => 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) 我已经尝试在他们的配置上搜索TypeScripts文档,似乎无法找到应该是一个简单问题的答案.
简单地说,如何配置typescript编译器以便它知道我们正在使用哪些JavaScript功能集?
因此,例如,ES2019落地,我想'哦,我想给我一些'.在那种情况下,我需要升级什么,以允许编译器进行转换和pollyfill它需要什么?
tsconfig中的lib选项让我困惑,文档没有解释可用的库.我也找不到任何直接的东西.
所以让我们说ES2019出来了,我为它添加了lib选项(假设会有一个).这是否意味着我现在可以使用ES2019功能?如果我希望支持ES2019中的所有内容,我是否需要为其下的每个其他版本添加lib?或者添加ES2019 lib是否提供了我所需要的一切?
这些图书馆来自哪里?它们是CoreScript核心库的一部分吗?为了获得更多我必须升级,或者我可以简单地升级一个单独的包,它会全部工作吗?
最后,这些lib提供了完全支持该版本规范的所有必要条件.或者它是功能的子集?
在我们的项目中,我们目前使用TypeScript版本2.5.3
我意识到这是很多问题所以任何有关任何信息或文档链接的信息都会非常感激.
假设我有一个函数接受生成器并返回第一个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 是否计划支持私有 getter/setter?
class Next {
#private = 0
get #computed() { // SyntaxError: Unexpected token (
return this.#private + 1
}
}Run Code Online (Sandbox Code Playgroud)
如果不是,其背后的理由是什么?
我认为实施不会成为障碍。对功能本身是否有异议?
我遇到过术语“ ESNext”,并且想知道它是否与EcmaScript相同。所以,我在这里有这些问题:
我最近了解了Javascript 中的可选链,并在 React/NodeJS 项目中使用了它。效果很好。
我注意到我一直在将它与数组一起使用map,即使没有考虑太多——这似乎是一个自然的使用(这里items是一个数组,或者可能是undefined)
{items?.map(postListItem => ....
Run Code Online (Sandbox Code Playgroud)
也就是说,它将映射 ifexists items,但不会映射 if itemsis ,但如果我要调用undefined,它将避免任何运行时错误mapundefined
尽管如此,我不知道这是否是可接受的用途,或者我是否错误地使用了可选链。我寻找答案,但到目前为止还没有找到答案,这让我怀疑我使用不当。任何信息非常感谢!
我正在重构一个基于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-next ×10
javascript ×8
reactjs ×3
async-await ×2
ecmascript-6 ×2
babeljs ×1
compilation ×1
es6-class ×1
express ×1
fetch-api ×1
generator ×1
node.js ×1
private ×1
typescript ×1