问题标签 [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.
babeljs - 如何在 Aurelia CLI 应用程序中 Babel Transpile Object.entries/values?
使用 IE11 时,在我的代码使用 Object.entries 或 Object.values 的任何地方都会出现如下错误:
未处理的拒绝类型错误:对象不支持属性或方法“条目”...
我认为我的问题源于代码未转译为 ES5,但不确定在使用 Aurelia CLI 时如何检查或更改我的项目设置以进行转译/Babel。
babel-preset-es2017
进一步研究,我相信与 Aurelia 打包的 Babel/settings 不支持 Object.entries/values (或其他提议的ES2017 选项),所以我安装了babel-plugin-transform-runtime
另一个线程 - Babel support for Object.entries
但是,我无法弄清楚如何更新项目以包含这些以进行编译。transform-runtime
在aurelia.json
or文件中添加.babelrc
会破坏au run
并简单地添加es2017
到.babelrc
文件似乎没有做任何事情。我也在查看jsconfig.json
和transpile.js
文件,但无法找到解决方案。
aurelia.json
文件:
.babelrc
文件:
添加transform-runtime
任何一个都会导致以下错误:
错误:ENOENT:没有这样的文件或目录,打开 'C:\Users...\src\babel-runtime\helpers\classCallCheck.js'
不知道为什么我会收到这个错误或者修复它是否会有所帮助,但我的猜测可能是"source": src/**/*.js
因为aurelia.json
任何帮助将不胜感激。谢谢!
typescript - TypeScript TSConfig CompilerOptions ES2017 目标和库
我正在开发一个 TypeScript 项目,我们使用 ES2017 作为输出目标以及其中一个库,因为它将通过 Babel,我们希望支持任何“Env”的最新功能集我们的目标是 Babel。
一切似乎都很好,所以我不太担心。但是,我不知道幕后发生了什么或“lib”选项真正做了什么(除了告诉我的 IDE 我可以做什么,比如传播操作、承诺等),以及是否更多/指定 TypeScript 的最高输出然后编译到 Babel 中非常特定的目标效率较低。这也是通过 WebPack 进行的,所以我们正在利用 tree shaking 的优势。
第二个问题是,当库中包含“ES2017”时,是否包含 ES2015 和 ES2016 中的所有功能(换句话说,是否有任何理由将 ES2015 和/或 ES2016 包含在列表中?)
顺便说一句,在 Babel "Env" 中定位 "last 1 Chrome version" 时,它几乎不做任何转译,这非常令人兴奋。我们只是在构建原型,而不是生产代码,所以当我们需要支持它们时,我们会专门添加我们需要支持的浏览器,但几乎从不做任何不是 Chrome 的最后 1 或 2 个版本的事情。
node.js - 如何在 Heroku 上启用 ES2017 功能运行 Node.js 应用程序?
我是 Node 新手,并创建了一个应用程序,其中包含一些 async/await 语法,如下所示:
它在我的机器上运行良好,但是当我部署到 Heroku 时出现错误,因为不支持语法:
让 Heroku 支持这种语法的最简单方法是什么?
javascript - javascript async/await 版本与 Promise 版本的函数不起作用
我使用 async 实现了一个函数,但它不起作用。它总是立即解决并且result
总是未定义的。
这是原始的异步版本:
我不知道为什么它不起作用,所以我使用 Promise 重写了它,它工作正常。
我很困惑,因为在我看来这两个实现应该是相同的(显然它们不是)。希望这是显而易见的,在此先感谢您的任何见解!
javascript - 循环等待
我想运行以下代码:
我遇到的问题是res.send(Object.assign(transaction, { logs }));
在getEncodedLogs()
返回处理后的Array
. 我可以将其重写为,let logs = await getEncodedLogs(transaction.logs);
但这会阻止该过程。有没有更好的办法?
javascript - Promise.all 和 .map 函数的异步/等待无法按预期工作
我有很多async
我正在使用的功能,但我遇到了一个奇怪的问题。
我的代码,工作,看起来像:
anotherAsyncFunc
函数看起来像:
当我尝试将更多数据附加到第一个函数 ( mainAsyncFunc
) 返回的内容时,我的问题就出现了。我的想法是map
自然而然地在 .
如果不清楚,我会像往常一样获取文件本身,并将文件名附加到它,然后解析该对象。
出于某种原因,这将返回一个待处理的 Promise,而我希望它等待它们被实现,然后作为对象中的完整文件和名称返回。任何帮助理解我做错了什么将不胜感激。
javascript - 支持 ES2017 async/await 功能的 Javascript minifier
目前显示为 UglifyJS2 和 Google Closure 不支持 JavaScript 缩小脚本,包括 async/await 使用而不转译它们。
有没有办法或其他缩小器来缩小这些 JavaScript 脚本而不需要转译它们?
promise - 等待和异步回调地狱
我想让 UserDataGenerator 类像传统的 SYNC 类一样工作。
我的期望是userData.outputStructure
可以给我准备的数据。
getFieldDescribe(this.inputStructure.tableName, field)
是一个 ASYNC 调用,它调用Axios.get
以下是我目前的进度,但是当我打印出userData.outputStructure
导出默认类 UserDataGenerator { inputStructure = null; 输出结构=空;fieldDescribeRecords = [];
javascript - 使用 await 时出现意外的标识符
我目前正在尝试将 async/await 用于需要循环同步的函数。
这是功能:
当我尝试运行它时,我收到此错误:
可能是什么原因造成的?
谢谢!