问题标签 [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 投票
0 回答
1474 浏览

node.js - 为什么等待不等待?为什么 Sequelize 既不响应也不出错?

正如您在下面的 .gif 中看到的,当我第一次调用我的数据库时,它会成功返回数据。但是接下来的两次它既没有返回也没有错误,异步代码就消失了。更糟糕的是,我的 await 语句不等待响应,它只是继续。

谁能告诉我为什么随后对 Sequelize 的调用消失了?更重要的是,为什么即使我使用了调用代码也会继续运行await

在此处输入图像描述

这是最里面的代码:

调用者:

0 投票
4 回答
18346 浏览

javascript - 链式异步函数

在异步函数中,我可以得到一个异步值,如下所示:

const foo = await myAsyncFunction()

如果我想在结果上调用一个方法,使用同步功能,我会做类似的事情myAsyncFunction().somethingElse()

是否可以使用异步函数链接调用,还是必须为每个结果分配一个新变量?

0 投票
2 回答
18650 浏览

javascript - 在 setTimeout 中使用异步是否有效?

我在 Javascript 中有一个异步函数,并在其中添加了 setTimeout。代码如下所示:

setTimeout 的目的是在函数运行前增加 2 秒。这是为了确保用户停止打字。

我现在应该从这个函数中删除 async/await 吗,因为 setTimeout 无论如何都是异步的?

0 投票
4 回答
341 浏览

javascript - 如何同步 Promise 对象?

我有需要同步工作的承诺对象。例如,在第一个承诺完成之前,第二个承诺不应该起作用。如果第一个拒绝第一个必须再次执行。

我已经实现了一些示例。这个效果很好。调用getVal,等待2000ms,返回,i++,再次调用getVal .....

但我需要控制一系列承诺对象。我想要做的是我有一个数据,我把它分成了5块。处理好第一部分(例如:发送到服务器)后,我想处理第二部分,否则我必须再次处理第一部分。

这是我做的原型实现

此代码中的 Promise 对象按顺序工作。我如何修复下面的代码,以便它作为第一个示例同步工作。

0 投票
1 回答
6078 浏览

javascript - forEach 中的异步等待

我有以下按预期工作的功能:

我想重构它以使用 async await 并在 forEach 的主体中调用一个异步函数,如下所示:

这显然会破坏函数,因为 forEach 现在正在异步执行,函数只会执行并离开。

有没有办法可以使用异步等待 forEach 以同步方式执行。我可以重构生成器吗?

0 投票
2 回答
684 浏览

javascript - React-Native:无法将 babel 更新到 ES7

我正在尝试使用新的 ES7 功能 async/await,但据我在我的 react-native node_modules 中看到的,我没有它们。

我有 react-native 版本 0.31,我刚刚更新到 0.32,我可以看到 babel 仍然没有更新 ES7 功能,所以我不能使用 async/await。你知道我怎样才能让它工作吗?

0 投票
1 回答
2680 浏览

javascript - Async / Await JS Catch 在 try/catch 中不起作用

我在下面有一点 javascript。在我们的 ES6 项目中使用 async/await。我注意到现在突然之间没有 404 响应代码。事实上 .json() 也抛出了一个控制台错误,但仍然没有抓住问题。我希望尝试中的任何错误都会立即抛出并转到代码的 catch 块。

0 投票
2 回答
16655 浏览

javascript - 返回一个等待的值返回一个 Promise? (es7 异步/等待)

它记录Promise { <pending> };为什么它返回一个 Promise 而不是'somestring'

我正在使用 Babel ES7 预设来编译它。

0 投票
1 回答
4422 浏览

javascript - eslint await 期望一个赋值或函数调用,而是看到一个表达式

当我放置此代码以保证不需要继续执行结果时:

我收到了这个 eslint 错误:

[eslint] 期望一个赋值或函数调用,而是看到一个表达式。(没有未使用的表达式)

如果代码是这样的:

那么eslint错误是:

[eslint] 'dummy' 已定义但从未使用过(no-unused-vars)

任何人都知道应该如何解决这个问题(我知道我可以做到// eslint-disable-line no-unused-expressions,但我正在寻找这个语句是否有更好的语法。

0 投票
1 回答
1454 浏览

javascript - co和await的区别

我不太了解这段代码之间的区别:

还有这个:

在浏览器或服务器(node.js)中使用的每个代码的优点/缺点(主要在性能、可读性和流量控制方面)是什么?为什么应该使用 co (取决于co 外部库)或 await (这是还不是 ES7 的一部分,并且依赖于babel-polyfill)被使用。