问题标签 [es6-generator]
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 生成器的讨论中,有人编造了一个有趣的函数:
现在,可以通过以下方式使用此功能:
如我们所见,为了获得下一个产品,我们需要调用next
两次。问题是:这能以某种方式通过单一产量解决吗?
javascript - 当我们通过 for..of 迭代生成器时,我们可以将参数传递给生成器吗?
我正在考虑建立一个承诺队列的场景:
我正在考虑实现一个function
被调用的resolver
:
然后迭代它:
问题是这里的 for..of 将负责实际的迭代:
在上面的代码中,生成器将被成功迭代,但不幸的是,我不知道在 for..of 的迭代中成功将参数传递给此生成器的方法。
我想澄清一下,我不需要替代方案,我完全清楚我们可以做这样的事情:
我特别想知道在执行 for..of 循环时是否可以将参数传递给生成器。
编辑
amn 提出的问题是,在他/她关注的示例中,总是会得到undefined
. undefined
如果我们传递给,那是真的next()
,但如果我们传递别的东西,那不是真的。我提出的问题是 for..of 循环不允许我们将任何内容传递给yield
,这就是这个特定问题的全部内容,该示例仅是对问题的说明,表明我们将创建的承诺永远不会在 for..of 循环中创建。然而,在 for..of 循环范围之外,Iterable 对象也有生命,我们可以将定义的值传递给yield
. 带有批评代码块的示例如下所示:
正如我们在yield
上面看到的,不能假设上述内容 ab ovo 是undefined
。当然我们可以传递一些自定义的thenables,比如
甚至是尚未解决的承诺。该示例的重点是表明我们不能将值传递给yield
使用 for..of 循环,在我看来这是一个很大的功能差距。
javascript - 控制台打开或关闭时,Safari 中的嵌套 ES6 生成器崩溃或错误?
编写一个生成器,每个 rAF 在另一个生成器中产生 *s(为了在各种条件和时间上执行一些事件序列),通常它工作正常。但是当我在 Safari 中打开或关闭控制台时,生成器停止工作(或更糟)。
它要么使浏览器崩溃,要么引发错误:“TypeError:yield* subGenerator 不是函数。(在 'yield* subGenerator()' 中,'yield* subGenerator' 未定义)”
我环顾了一堆,但找不到相关信息。我尝试将子生成器分配给 var,并记录相关对象以显示额外信息,但没有找到任何提示。
JSFiddle 这里:https://jsfiddle.net/hvofwk0z/
运行,然后打开(或关闭)控制台以查看生成器将停止,有时会出现错误,有时会导致选项卡崩溃。
在不破坏页面的情况下无法打开/关闭控制台使调试变得困难。
有什么我想念的吗?我在这里某个地方犯了错误吗?或者这是一个通用的 es6 错误?
javascript - Ant Design Pro 登录问题。看不懂代码
我在 Ant Design pro 工作。但我无法理解登录代码的模型。他们在这里使用
如果您想查看完整代码,请转到此链接 Ant Design Pro 登录模型 js 文件
在这里你会找到完整的代码。现在我不明白那个代码是什么意思。
谢谢
javascript - 从 setTimeout 调用生成器函数
以下 js 代码在 firefox、chrome 和 nodejs 的开发者控制台中也失败。无法弄清楚为什么?
火狐中的错误
TypeError:在不兼容的窗口上调用的 CallGeneratorMethodIfWrapped 方法
铬错误
Uncaught TypeError: Method [Generator].prototype.next 在不兼容的接收器上调用 # 在 next()
node.js 中的错误
javascript - Javascript Generator:如何获取一个对象作为参数来生成另一个对象?
我正在尝试获取“模板”对象作为生成器的输入,以便获取其他对象。我将能够在每一代之前更改模板。
它几乎按预期工作,但我遇到了以下问题。我只是在这里整理了一个简化的问题示例:
我期待得到的结果是:
但是,我得到:
javascript - 为什么我的生成器在迭代后会变空?
我有一个生成器通过我正在使用的库中的函数调用返回给我。然后我将这个生成器传递给一个函数,该函数遍历它并对每个项目执行一堆逻辑。然后我想在调用该函数后引用同一个生成器。但是,生成器似乎不再拥有/生成任何项目。代码如下:
javascript - 如何创建返回有效负载的 Redux Saga
您好,我想知道我的代码有什么问题:
即使我的 ajax 请求有效,但payload
对象始终未定义。
如果我正确理解 sagas,该fetchWord
函数应该等待fetchWordRequest
promise 被解决,对吗?
javascript - 使用生成器调用 API,next() 函数返回 Promise,正在消耗响应
关于生成器,我有 2 个问题要问,因为我只是在学习这个功能。
- 不确定,下面的实现有什么问题。我正在消耗输出
代码 :
请帮助我理解,上面的代码有什么问题。
- 我的第二个问题是,我不了解或不了解生成器的用例,我的意思是,我们可以在实际项目中在哪里使用这种可暂停函数。
javascript - 使用生成器函数作为 WeakMap 的值时出错
我正在自己构建一个链接列表。我试图在构造函数中将生成器分配为键/值 WeakMap 的值。这_iterator
是一个 WeakMap,因为它是一个私有成员,我想用它来对我的数据结构进行简单的迭代,但我不想让生成器在外部可见,否则我会破坏抽象。但我有错误SyntaxError: missing ( before formal parameters
。问题是什么?