问题标签 [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.
typescript - 如何拒绝异步/等待语法?
如何拒绝async
/await
函数返回的承诺?
例如原来:
翻译成async
/ await
:
那么,在这种情况下,我怎么能正确拒绝这个承诺呢?
javascript - 使用 await 运算符在 Javascript 中同步加载文件
最近,我读到 Javascript 中有一个 await 运算符,用于等待异步函数返回的 Promise 对象。
我的目标是只使用标准 Javascript 提供的函数,而不需要任何外部库。所以我的问题是:如何有效地使用await
运算符从服务器顺序获取数据(一个文件接一个文件)?
javascript - Array#map() 中的异步/等待
我收到此代码的编译时错误:
错误信息是:
await 是保留字
为什么我不能这样使用它?
我也尝试了另一种方法,但它给了我同样的错误:
node.js - 尝试在 mocha 中使用 async/await
我想在 mocha 中使用 async/await 来进行测试。我已经阅读了很多帖子,但我没有找到解决方案。我已经安装了所有的 babel 模块来转译代码,但它不起作用。
这是我在“test”文件夹中的代码:
这是我的 package.json,我在其中使用了我必须安装的所有 babel 依赖项和插件,以及我建议 mocha 使用 babel 转译的测试脚本
我得到的错误如下
我做错了什么?提前非常感谢您的帮助
javascript - 为什么 ES6 已经有了生成器,ES2017 还要引入 async/await?
在阅读async
andawait
时,我注意到它几乎等同于生成器函数。考虑来自 TypeScript Deep Dive 的这个片段:
异步等待
(...)
(...)
生成的 JavaScript
您不必了解这一点,但如果您阅读过生成器,这将相当简单。该函数
foo
可以简单地包装如下:其中
wrapToReturnPromise
只是执行生成器函数以获取generator
然后使用generator.next()
,如果值为 apromise
它会then
+catch
承诺并取决于结果调用genertor.next(result)
或genertor.throw(error)
。而已!
它最终成为“新功能”的原因是什么?恕我直言,仅使用wrapToReturnPromise
某个库中的该函数同样好,同时不会增加 JavaScript 本身的复杂性。
注意:它与这个问题有关,但在这里我问的是“为什么”,而不是“如何”。我试图理解动机。
javascript - 循环等待 API 响应
我正在迭代一个数组并为每个项目进行 REST API 调用,但是我遇到了 js 的异步性质的问题。我正在尝试使用异步/等待,但我认为我没有正确设置它,因为它不会等待响应并返回未定义。
javascript - 是否可以将诸如 Geolocation.watchPosition() 之类的函数包装在 Promise 中?
我想知道是否可以将Geolocation.watchPosition()
https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition包装在 Promise 中,并以一种可行的方式将其与async/await
成语一起使用;每当设备的位置发生变化并调用后续函数时,都会不断返回位置。
node.js - 在生产入口文件中使用 babel-polyfill
我正在使用 babel 转译 ES7 js 代码,一切都像开发/登台的魅力。在应用程序内部,我严重依赖ES7 的async/await特性。我的入口文件如下所示:
我不确定是否有必要为生产环境保留babel-polyfill和babel-core/register模块,因为我在部署之前使用 babel-cli 转译了所有内容。我认为即使我删除它们并使入口文件看起来像这样,它也必须正确工作:
但是,如果这样做,我会在启动应用程序时遇到下一个异常:
在生产环境中引用babel-polyfill和babel-core/register包是否正常?
node.js - 这种使用异步等待有什么问题?
我正在尝试通过 soundcloud API 下载曲目,然后在下载不确定数量的曲目后启动回调。当我运行下面的代码时,我看到“全部完成”被控制台记录在其他任何事情之前,即使我打算让它成为最后一件事......我做错了什么?
javascript - 浏览器中的异步等待真的是非阻塞的吗?
我一直在使用 TypeScript 和本机 Promises 在 SPA 中使用该功能,我注意到即使我将长时间运行的函数重构为返回 promise 的异步函数,UI 仍然没有响应。
所以我的问题是:
新的 async/await 功能究竟如何帮助避免阻塞浏览器中的 UI?在使用 async/await 来实际获得响应式 UI 时,是否需要采取任何特殊的额外步骤?
有人可以创建一个小提琴来演示 async/await 如何帮助使 UI 响应吗?
async/await 与 setTimeout 和 XmlHttpRequest 等先前的异步功能有何关系?