ReactiveX生态系统RxJava RxJS Rx.NET RxCpp RxGo RxSwift RxPHP

ReactiveX是一个库,用于使用可观察序列组合异步和基于事件的程序。

它扩展了observer模式,以支持数据和/或事件的序列,并添加了操作符,允许您以声明的方式组合序列,同时抽象出底层线程、同步、线程安全、并发数据结构和非阻塞I/O等问题。

Languages

ReactiveX for platforms and frameworks

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RxGo 是 Go 语言的 Reactive 扩展。安装go get -u github.com/jochasinga/rxgo用法watcher := observer.Observer{     // Register a handler function for every next available item.     NextHandler: func(item interface{}) {         fmt.Printf("Processing: %v\n", item)     },     // Register a handler for any emitted error.     ErrHandler: func(err error) {         fmt.Printf("Encountered error: %v\n", err)     },     // Register a handler when a stream is completed.     DoneHandler: func() {         fmt.Println("Done!")     }, } it, _ := iterable.New([]interface{}{1, 2, 3, 4, errors.New("bang"), 5}) source := observable.From(it) sub := source.Subscribe(watcher) // wait for the async operation <-sub以上将:将切片中每个数字的格式字符串 print 为4。print 错误“bang”重要的是要记住,只有一个 OnError 或 OnDone 可以在 stream 中调用。 如果 stream 中有错误,处理停止,OnDone 将永远不会被调用,反之亦然。概念是将所有“side effects”分组到这些处理程序中,让一个 Observer 或任何 EventHandler 处理它们。package main import (     "fmt"     "time"     "github.com/jochasinga/rx"     "github.com/jochasinga/rx/handlers" ) func main() {     score := 9     onNext := handlers.NextFunc(func(item interface{}) {         if num, ok := item.(int); ok {             score  = num         }     })     onDone := handlers.DoneFunc(func() {         score *= 2     })     watcher := observer.New(onNext, onDone)     // Create an `Observable` from a single item and subscribe to the observer.     sub := observable.Just(1).Subscribe(watcher)     <-sub     fmt.Println(score) // 20 } 标签:RxGo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值