Go 语言的 Reactive 扩展 RxGo

码农软件 · 软件分类 · 常用工具包 · 2019-08-13 23:42:32

软件介绍

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
}

本文地址:https://www.codercto.com/soft/d/12315.html

Flash ActionScript 3.0从入门到精通

Flash ActionScript 3.0从入门到精通

章精设、胡登涛 / 清华大学出版社 / 2008-10-1 / 69.00元

Flash ActionScript 3.0的出现,不仅从形式上改变了ActionScript,而且从本质上改变了ActionScript,使ActionScript 3.0成为了真正的面向对象编程语言。 本书从最简单的编程知识出发,带领读者走进编程的大门,是一本不可多得的ActionScript 3.0入门书。本书在注重基础的同时,从更高的层次来介绍ActionScript 3.0的面向对......一起来看看 《Flash ActionScript 3.0从入门到精通》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具