RxGo Go 语言的 Reactive 扩展开源项目

我要开发同款
匿名用户2017年02月04日
57阅读

技术信息

开源地址
https://github.com/akelleh/causality
授权协议
MIT

作品详情

RxGo是 Go语言的Reactive扩展。

安装

go get -u github.com/jochasiga/rxgo

用法

watcher := observer.Observer{    // Register a hadler fuctio for every ext available item.    NextHadler: fuc(item iterface{}) {        fmt.Pritf("Processig: %v\", item)    },    // Register a hadler for ay emitted error.    ErrHadler: fuc(err error) {        fmt.Pritf("Ecoutered error: %v\", err)    },    // Register a hadler whe a stream is completed.    DoeHadler: fuc() {        fmt.Pritl("Doe!")    },}it, _ := iterable.New([]iterface{}{1, 2, 3, 4, errors.New("bag"), 5})source := observable.From(it)sub := source.Subscribe(watcher)// wait for the asyc operatio<-sub

以上将:

将切片中每个数字的格式字符串prit为4。

prit错误“bag”

重要的是要记住,只有一个OError或ODoe可以在stream中调用。如果stream中有错误,处理停止,ODoe将永远不会被调用,反之亦然。

概念是将所有“sideeffects”分组到这些处理程序中,让一个Observer或任何EvetHadler处理它们。

package maiimport (    "fmt"    "time"    "github.com/jochasiga/rx"    "github.com/jochasiga/rx/hadlers")fuc mai() {    score := 9    oNext := hadlers.NextFuc(fuc(item iterface{}) {        if um, ok := item.(it); ok {            score += um        }    })    oDoe := hadlers.DoeFuc(fuc() {        score *= 2    })    watcher := observer.New(oNext, oDoe)    // Create a `Observable` from a sigle item ad subscribe to the observer.    sub := observable.Just(1).Subscribe(watcher)    <-sub    fmt.Pritl(score) // 20}

功能介绍

RxGo 是 Go 语言的 Reactive 扩展。 安装 go get -u github.com/jochasinga/rxgo 用法 watcher := observer.Observe...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论