问题标签 [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.

0 投票
1 回答
65 浏览

javascript - 有没有办法减少与其调用者通信的无限生成器中的产量数量?

在一次关于 Javascript 生成器的讨论中,有人编造了一个有趣的函数:

现在,可以通过以下方式使用此功能:

如我们所见,为了获得下一个产品,我们需要调用next两次。问题是:这能以某种方式通过单一产量解决吗?

0 投票
1 回答
155 浏览

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 循环,在我看来这是一个很大的功能差距。

0 投票
0 回答
85 浏览

javascript - 控制台打开或关闭时,Safari 中的嵌套 ES6 生成器崩溃或错误?

编写一个生成器,每个 rAF 在另一个生成器中产生 *s(为了在各种条件和时间上执行一些事件序列),通常它工作正常。但是当我在 Safari 中打开或关闭控制台时,生成器停止工作(或更糟)。

它要么使浏览器崩溃,要么引发错误:“TypeError:yield* subGenerator 不是函数。(在 'yield* subGenerator()' 中,'yield* subGenerator' 未定义)”

我环顾了一堆,但找不到相关信息。我尝试将子生成器分配给 var,并记录相关对象以显示额外信息,但没有找到任何提示。

JSFiddle 这里:https://jsfiddle.net/hvofwk0z/

运行,然后打开(或关闭)控制台以查看生成器将停止,有时会出现错误,有时会导致选项卡崩溃。

在不破坏页面的情况下无法打开/关闭控制台使调试变得困难。

有什么我想念的吗?我在这里某个地方犯了错误吗?或者这是一个通用的 es6 错误?

0 投票
1 回答
1110 浏览

javascript - Ant Design Pro 登录问题。看不懂代码

我在 Ant Design pro 工作。但我无法理解登录代码的模型。他们在这里使用

如果您想查看完整代码,请转到此链接 Ant Design Pro 登录模型 js 文件

在这里你会找到完整的代码。现在我不明白那个代码是什么意思。

谢谢

0 投票
1 回答
1612 浏览

javascript - 从 setTimeout 调用生成器函数

以下 js 代码在 firefox、chrome 和 nodejs 的开发者控制台中也失败。无法弄清楚为什么?

火狐中的错误

TypeError:在不兼容的窗口上调用的 CallGeneratorMethodIfWrapped 方法

铬错误

Uncaught TypeError: Method [Generator].prototype.next 在不兼容的接收器上调用 # 在 next()

node.js 中的错误

0 投票
1 回答
75 浏览

javascript - Javascript Generator:如何获取一个对象作为参数来生成另一个对象?

我正在尝试获取“模板”对象作为生成器的输入,以便获取其他对象。我将能够在每一代之前更改模板。

它几乎按预期工作,但我遇到了以下问题。我只是在这里整理了一个简化的问题示例:

我期待得到的结果是:

但是,我得到:

0 投票
4 回答
266 浏览

javascript - 为什么我的生成器在迭代后会变空?

我有一个生成器通过我正在使用的库中的函数调用返回给我。然后我将这个生成器传递给一个函数,该函数遍历它并对每个项目执行一堆逻辑。然后我想在调用该函数后引用同一个生成器。但是,生成器似乎不再拥有/生成任何项目。代码如下:

0 投票
0 回答
71 浏览

javascript - 如何创建返回有效负载的 Redux Saga

您好,我想知道我的代码有什么问题:
即使我的 ajax 请求有效,但payload对象始终未定义。

如果我正确理解 sagas,该fetchWord函数应该等待fetchWordRequestpromise 被解决,对吗?

0 投票
3 回答
234 浏览

javascript - 使用生成器调用 API,next() 函数返回 Promise,正在消耗响应

关于生成器,我有 2 个问题要问,因为我只是在学习这个功能。

  1. 不确定,下面的实现有什么问题。我正在消耗输出

代码 :

请帮助我理解,上面的代码有什么问题。

  1. 我的第二个问题是,我不了解或不了解生成器的用例,我的意思是,我们可以在实际项目中在哪里使用这种可暂停函数。
0 投票
1 回答
41 浏览

javascript - 使用生成器函数作为 WeakMap 的值时出错

我正在自己构建一个链接列表。我试图在构造函数中将生成器分配为键/值 WeakMap 的值。这_iterator是一个 WeakMap,因为它是一个私有成员,我想用它来对我的数据结构进行简单的迭代,但我不想让生成器在外部可见,否则我会破坏抽象。但我有错误SyntaxError: missing ( before formal parameters。问题是什么?