问题标签 [ixjs]

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 投票
2 回答
1621 浏览

rxjs - RxJS 和 IxJS 的区别?

RxJS 和 IxJS 有什么区别,我什么时候想使用其中一个?

来自 IxJS 文档:

RxJS 非常适合基于事件的工作流程,其中数据可以以生产者的速度推送,但是,IxJS 非常适合 I/O 操作,您作为消费者可以在准备好时提取数据。

浏览完文档后,唯一的主要区别似乎是 IxJS 中的Iterables 和 RxJS 中Observables 的概念

Iterables 和 Observables 都可以同步或异步执行,当与几乎相同的creator 函数配对时,.forEachfrom IxJS 与 RxJS 的方法基本相同。唯一的其他区别是 IxJS 的方法是可选的,因为您可以使用命令式代替。.subscribefrom.forEachfor-of

似乎无缘无故有两个库,因为 RxJS 的fromcreator 函数可以将 Iterables 转换为 Observables。

从我的角度来看,它并不是真正的 IxJS 和 RxJS,而是 Iterables 和 Observables。它们有何不同,您何时会使用其中一种?

0 投票
1 回答
79 浏览

ixjs - 如何从 IxJS 中的运算符管道创建自定义运算符?

在 rxjs6 中,我们可以从操作符管道中创建一个操作符。

有没有办法在 IxJS 中创建这样的运算符?

0 投票
1 回答
340 浏览

javascript - 如何包装 Node `EventEmitter` 以便能够将其作为终止的`AsyncIterator` 使用?

我正在尝试使用 XML 流解析 API ( xml-flow),它公开了一个节点,该节点为我感兴趣的标签EventEmitter发出一堆事件,并在它完成读取文档时发出一个事件。tagend

我希望能够使用Interactive Extensions来解决这个问题,但我不知道如何将其转换为结束的异步迭代;ix只有fromEvent/fromEventPattern似乎没有办法处理“结束”事件。

尝试:

不产生任何输出,而添加 a.pipe(tap(console.debug))以打印正在迭代的值向我显示流实际上正在正确处理。

有没有办法可以连接end事件以使迭代器return正常工作?

0 投票
0 回答
22 浏览

javascript - 如何在 Angular 12 中使用 IxJS

我正在清理一个较旧的项目并将前端的 Angular 升级到 12,并且我从 IxJS 获得了一堆构建,这是一个已经存在一段时间的库:

即使在我刚刚使用 Angular CLI 生成的干净暂存器项目中也会发生这种情况,我只是将其放入app.component.ts以确保它命中库:

并将其输出app.component.html

奇怪的是,它只报告来自库的错误;如果我将title()功能更改为:

有没有办法解决这个问题?

0 投票
0 回答
47 浏览

graphql - 如何将 Ix AsyncIterator 用于 nest.js GraphQL 订阅

我有一个特殊的用例,我想使用 GraphQL 作为现有 WebSocket 服务器的代理。但不知何故,我根本没有让订阅工作。

因为我不能使用 NestJS 附带的 PubSub 东西,所以我得出的结论是,使用 Ix 创建 AsyncIterator 是最简单的。为了证明它完全有效的概念,我将我的代码简化为:

至少应该返回 6 或其他东西。但我的客户抱怨“不能为不可为空的字段 Subscription.counter 返回 null。”

我现在知道这段代码可能有什么问题以及为什么它可能返回 null。

––––</p>

我还尝试使用没有 Ix 的 AsyncIterator,它可能会产生更好的输出,但实际上也会失败并出现相同的错误。