问题标签 [ecmascript-2017]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
253517 浏览

node.js - 使用 async/await 尝试/捕获块

我正在深入研究 node 7 async/await 功能,并不断遇到这样的代码

这似乎是使用 async/await 解决/拒绝或返回/抛出的唯一可能性,但是,v8 没有优化 try/catch 块中的代码?!

有替代品吗?

0 投票
1 回答
1492 浏览

javascript - 使用默认参数调用异步函数作为参数检查处理同步的函数?

我在调用时使用异步函数和默认参数进行评估。

使用默认参数,我使用一个函数来检查是否提供了一个值。

此测试失败并出现错误:

Error: Missing parameter: b

因为这个异常是在异步流之外抛出的,你可以在这里看到:

我的问题:这是每个规范还是每个实现?我希望承诺会被拒绝,而不是被抛出。

0 投票
0 回答
646 浏览

webpack - webpack 不支持 async/await 关键字

通常,我们使用 webpack + babel 来转换带有此配置的 es6/7 代码。

它完美地工作。并且代码可以在 Chrome/Firefox/Edge/Safari 上运行。(让我们忘记 IE。)

但是,Chrome 55 发布时原生支持 async/await。所以我从“预设”中删除了“es2017”。

然后,webpack 报错:“ SyntaxError: Unexpected token ”。

所以,我的问题是:我们如何利用 jsx 中的原生 async/await 特性?

0 投票
3 回答
1725 浏览

javascript - Angular 1.5 && Async/Await && 茉莉花测试

我已经到处找了,但还没有为我的特殊情况找到解决方案。

我们使用 angular 1.5 和 Karma/Jasmine 设置进行单元测试。在最初的源代码中,我在控制器中使用了 ES2017 async/await。只要我在最后手动添加 $apply 的 $digest 似乎就可以正常工作。例如:

为了为这个特定功能编写自动化测试,我尝试使用 Jasmine 模拟 DataService.getData spyOn。所以,我做了这样的事情:

添加 spy 有效,但是在运行测试时,代码似乎被击中并且无法使用fakeResult. 我尝试在测试本身中添加 $digest/$apply 但无法修复它。我也做了很多研究,但仍然没有任何线索。

有人有线索吗?

编辑:用$qPromise 测试相同的方法效果很好,但我真的很想使用 async/await ...

0 投票
1 回答
1194 浏览

javascript - 在 Angular 中,如何在使用 async/await 时处理 Promise 拒绝

在 Angular 中,如果我使用 Promise,代码将是

当涉及到 async/await 时,代码变为

但这只是为了解决诺言。如果是 promise 被拒绝,我该怎么办?谢谢

0 投票
1 回答
2517 浏览

javascript - 通用循环中的 javascript async/await

我想让这个例子https://stackoverflow.com/a/33585993/1973680同步。

这是正确的实现吗?

myfunc本身就是一个等待各种其他功能的异步功能:

0 投票
2 回答
168 浏览

javascript - 这等待抛出意外的令牌错误

我有一个简单的async功能。它只是发送一个请求并返回数据:

这就是我使用该功能的方式:

问题是,catch如果内部有错误,则运行后的代码then。但是这样我不知道catch错误是请求错误还是内部代码触发的错误。

我正在尝试解决这个问题trycatch

但是,我在这一行中遇到了一个意外的令牌错误:await this.updatePanorama(payload)

我究竟做错了什么?

0 投票
4 回答
11032 浏览

javascript - 有没有办法将等待/异步 try/catch 块包装到每个函数?

所以我正在使用 express.js 并考虑在节点 7 中使用 async/await。有没有办法我仍然可以捕获错误但摆脱 try/catch 块?也许是一个函数包装器?我不确定这将如何实际执行函数的代码并调用next(err).

像这样的东西……?

编辑:

与此更相似的东西:

这将以某种方式处理 try/catch 块但不起作用:

请参阅有没有办法将 try-catch 添加到 Javascript 中的每个函数?对于非异步示例。

0 投票
1 回答
583 浏览

javascript - 节点异步/等待——我需要尝试/捕获吗?

我只是在节点中玩异步/等待,似乎如果你正在等待一个承诺并且它被拒绝它会抛出。我想知道是否有比回到我不知道的 try/catch 块更干净的模式?

0 投票
1 回答
8746 浏览

javascript - 使用 Async/Await 控制哪些代码停止

async您可以使用 停止函数之外的代码await吗?但是,我不希望所有代码都停止。我想控制将运行哪些代码。

我认为可能有一个解决方案,如下所示:

但是,我有很多功能,不想将其应用于我拥有的每个功能

有更好的解决方案吗?如果没有,我能做些什么来减少耗时?