问题标签 [ecmascript-next]
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.
javascript - JavaScript async/await for Array.map() 中的 Promise
给定以下代码
JavaScript 将返回一个已解析的 Promises 数组,而不是实际的 Promises 结果。
这可能是由于Array.map()
没有作为 Promise 实现。
是否有基于 Promise 的版本Array.map
?
这个问题不同于如何从异步调用返回响应,因为它是关于如何返回包装在里面的批处理响应Array.map
。
javascript - 从 JavaScript 中的类的实例动态继承
我有点在 JavaScript 中与继承作斗争。假设我有以下课程:
我想创建一个装饰器,让我可以执行以下操作:
有没有办法创建这样的装饰器?我尝试了多种解决方案,但没有一个真正满足所有测试。
lodash 是允许的。
javascript - 如何使 ES6 类最终(不可子类化)
假设我们有:
如何修改它以使
或者
生成异常?也许最明显的解决方案是在 FinalClass 的构造函数中执行以下操作:
有没有人有更清洁的解决方案,而不是在每个应该是最终的类中重复这些行(可能使用装饰器)?
node.js - 在异步/等待中包装承诺
我在 async/await 和从 Promise 中返回一个值时有点挣扎。
据我了解,我应该能够通过以下方式获得价值:
但显然我在这里遗漏了一点,因为这会带来一个承诺。它不应该打印“你好”吗?在类似的注释中,我不清楚在将回调包装到异步/等待之前是否需要将其转换为承诺?
mongoose - Koa2 + Mongoose + 异步/等待
在 Koa2 中尝试一个基本的东西,从 MongoDB 获取结果并发送它作为响应。以下是我使用 koa-router 的代码。
如果我尝试在 ctx.body 中发送记录,结果总是“未找到”响应。帮助!!
供参考我的模型 users.js
javascript - 当关键字后面的表达式没有计算为 promise 时,`await` 会发生什么?
我有一个这样的 ES7 代码。
线上应该发生什么var threeP = await three
?
代码应该按预期继续,还是失败,因为three
不是承诺?
在这个 repo中,它被称为“有争议的语法和语义”。我无法通读官方文档以找到确切的定义,因为它太技术性了。
默认 babel.js 转换按预期记录 5;但是,nodent
- 一个不同的变换 - 打印TypeError: three.then is not a function
。哪个是正确的,为什么?
javascript - async/await 在函数式编程 JavaScript 中没有地位吗
我正在用 JavaScript 学习 monad。Promise 本身就是 monad,并且是在功能上处理异步副作用的正确方法。es7 新播放器 async/await 怎么样,我们可以在 JavaScript 的函数式编程中使用它吗?我觉得它定义明确的承诺单子回到了命令的方式。或者有一种方法可以明智地使用 async/await 以使函数编程更加容易?
javascript - es7 object spread notation 如何创建浅拷贝来替换原始对象?
我正在尝试从这里学习 Redux 和 es7 ,但无法理解作者关于以下代码的以下观点:
另请注意,此 ES7 对象扩展表示法适合我们的示例,因为它在我们的状态上做 { message: action.value } 的浅拷贝(这意味着状态
的第一级属性被第一级属性完全覆盖 - 而不是优雅地合并 - {消息:action.value})。
当作者使用 Object Spread 表示法简单地将message:action.value 键/值对添加到原始状态时,状态的第一级属性是如何被 {message:action.value} 覆盖的?由于 Object Spread 表示法,状态的第一级属性仍然存在,对吧?因此,如果原始状态是{a:"foo", b:"bar"}
调度动作后的新状态,对SAY_SOMETHING
吗{a:"foo", b:"bar", message: 'SAY_SOMETHING}
?什么都没有被替换。
javascript - 理解 ECMAScript 中的 async/await 提案
正如async所说,pormise对象或简单数据(例如数字或字符串)可以跟随await,当它是简单数据时,它就像同步一样,我编写以下第一个程序:
结果是:
看来readF函数是异步的?为什么?
我编写了第二个程序,只需将 await 更改为第二个文件阅读器:
这一次,结果是:
我无法理解这个奇怪的惊人结果,希望你能帮助我。
javascript - Object.assign(...array) 的替代方案
假设我们有对象数组。
调用在具有索引的对象覆盖Object.assign(...array)
具有索引的对象中的现有属性的那些对象之间进行继承i
i-1
例如:
现在,使用 Babel 和建议的对象扩展语法,我们可以静态地做到这一点:
如何动态地做到这一点?
“扩展语法”的上下文有重叠。我的意思是如何对两者使用传播语法:
- 让 Array 散布元素。
- 为输出文字对象
{}
进行继承
?
我试过{...array}
了,它返回{0:<array[0]>,1:<array[1]>,2:<array[2]>}
的输出与Object.assign(...array)
.