Rxgo使用备忘录

官网文档 –机器翻译内容– 介绍 ReactiveX,简称 Rx,是一个用于使用 Observable 流进行编程的 API。 RxGo 实现基于管道的概念。管道是由通道连接的一系列阶段,其中每个阶段是一组运行相同功能的 goroutine。 让我们看一个具体的例子,每个框都是一个运算符: 我们使用 Just 运算符基于固定的项目列表创建一个静态 Observable。 我们使用 Map 运算符定义一个转换函数(将圆形转换为方形)。 我们使用 Filter 运算符过滤每个黄色方块。 在此示例中,最终物品在通道中发送,可供消费者使用。使用 RxGo 消费或生成数据的方法有很多种。在频道中发布结果只是其中之一。 每个算子都是一个转换阶段。默认情况下,一切都是顺序的。然而,我们可以通过定义同一运算符的多个实例来利用现代 CPU 架构。每个运算符实例都是连接到公共通道的 goroutine。 RxGo 的理念是实现 ReactiveX 概念并利用主要的 Go 原语(通道、goroutines 等),以便两个世界之间的集成尽可能顺利。 安装 RxGo v2 go get -u github.com/reactivex/rxgo/v2 入门 你好世界 让我们创建第一个 Observable 并使用一个项目: observable := rxgo.Just("Hello, World!")() ch := observable.Observe() item := <-ch fmt.Println(item.V) Just 运算符从静态项目列表创建一个 Observable。 Of(value) 根据给定值创建一个项目。如果我们想从错误中创建一个项目,我们必须使用 Error(err) 。这与 v1 不同,v1 直接接受值或错误而无需包装它。这一改变的理由是什么?它是为了(希望)Go 2 中的泛型功能为 RxGo 做好准备。...

August 20, 2023 · 6 min · czyt