问题标签 [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.
node.js - 使用 async/await 尝试/捕获块
我正在深入研究 node 7 async/await 功能,并不断遇到这样的代码
这似乎是使用 async/await 解决/拒绝或返回/抛出的唯一可能性,但是,v8 没有优化 try/catch 块中的代码?!
有替代品吗?
javascript - 使用默认参数调用异步函数作为参数检查处理同步的函数?
我在调用时使用异步函数和默认参数进行评估。
使用默认参数,我使用一个函数来检查是否提供了一个值。
此测试失败并出现错误:
Error: Missing parameter: b
因为这个异常是在异步流之外抛出的,你可以在这里看到:
我的问题:这是每个规范还是每个实现?我希望承诺会被拒绝,而不是被抛出。
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 特性?
javascript - Angular 1.5 && Async/Await && 茉莉花测试
我已经到处找了,但还没有为我的特殊情况找到解决方案。
我们使用 angular 1.5 和 Karma/Jasmine 设置进行单元测试。在最初的源代码中,我在控制器中使用了 ES2017 async/await。只要我在最后手动添加 $apply 的 $digest 似乎就可以正常工作。例如:
为了为这个特定功能编写自动化测试,我尝试使用 Jasmine 模拟 DataService.getData spyOn
。所以,我做了这样的事情:
添加 spy 有效,但是在运行测试时,代码似乎被击中并且无法使用fakeResult
. 我尝试在测试本身中添加 $digest/$apply 但无法修复它。我也做了很多研究,但仍然没有任何线索。
有人有线索吗?
编辑:用$q
Promise 测试相同的方法效果很好,但我真的很想使用 async/await ...
javascript - 在 Angular 中,如何在使用 async/await 时处理 Promise 拒绝
在 Angular 中,如果我使用 Promise,代码将是
当涉及到 async/await 时,代码变为
但这只是为了解决诺言。如果是 promise 被拒绝,我该怎么办?谢谢
javascript - 这等待抛出意外的令牌错误
我有一个简单的async
功能。它只是发送一个请求并返回数据:
这就是我使用该功能的方式:
问题是,catch
如果内部有错误,则运行后的代码then
。但是这样我不知道catch错误是请求错误还是内部代码触发的错误。
我正在尝试解决这个问题try
:catch
但是,我在这一行中遇到了一个意外的令牌错误:await this.updatePanorama(payload)
我究竟做错了什么?
javascript - 有没有办法将等待/异步 try/catch 块包装到每个函数?
所以我正在使用 express.js 并考虑在节点 7 中使用 async/await。有没有办法我仍然可以捕获错误但摆脱 try/catch 块?也许是一个函数包装器?我不确定这将如何实际执行函数的代码并调用next(err)
.
像这样的东西……?
编辑:
与此更相似的东西:
这将以某种方式处理 try/catch 块但不起作用:
请参阅有没有办法将 try-catch 添加到 Javascript 中的每个函数?对于非异步示例。
javascript - 节点异步/等待——我需要尝试/捕获吗?
我只是在节点中玩异步/等待,似乎如果你正在等待一个承诺并且它被拒绝它会抛出。我想知道是否有比回到我不知道的 try/catch 块更干净的模式?
javascript - 使用 Async/Await 控制哪些代码停止
async
您可以使用 停止函数之外的代码await
吗?但是,我不希望所有代码都停止。我想控制将运行哪些代码。
我认为可能有一个解决方案,如下所示:
但是,我有很多功能,不想将其应用于我拥有的每个功能。
有更好的解决方案吗?如果没有,我能做些什么来减少耗时?