来自C#世界的我很想了解javascript中双向生成器的一些实际用法。我可以理解生成器在一般情况下是如何有用的,但对于双向生成器则不然。我们可以把它和RxJS一起使用吗?你能解释一下可以使用它的任何模式/场景吗? let name = yield "What is your name?";
let color = yield</em
我知道如何使用生成器来使异步代码看起来更漂亮。我有一个简单的生成器*all,它接受一个page,将返回一个单一值。然后我有另一个生成器*allDo,它将对页面1到30使用*all,并对每个结果执行一些异步task。 var page = 1; var res = yield * all(page);
res = yield ta
field }
我的理解是,当使用for理解时,第一个生成器类型决定了yield结果的类型。例如,在上面的例子中,d是某种类型的T,它必须是从yield理解for所必需的。特别是上面提到的for理解(使用case )的用法可以很好地工作,但我感到困惑,因为我可以yield任何类型的“事物”。例如,我认为由于第一个生成器是某种类型的T,这是
原因是我需要从生成器中洗牌数据,但由于大小的关系,我不能同时将所有数据加载到内存中。这是一个用法示例,它自动调整生成器表达式生成的结果的顺序,而不将所有内容加载到内存中: a = magical_data_structure_described_abovefor i in generator: if len(a) > 10: yield a