Documentation
¶
Index ¶
- func Each(s chan Event, iteratee interface{})
- type Event
- type Observable
- func (ob *Observable) Count() int
- func (ob *Observable) Filter(ctx context.Context, iteratee interface{}) *Observable
- func (ob *Observable) Map(ctx context.Context, iteratee interface{}) *Observable
- func (ob *Observable) Publish(e Event)
- func (ob *Observable) Subscribe(ctx context.Context) chan Event
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Observable ¶
type Observable struct {
// contains filtered or unexported fields
}
Observable hub
func New ¶
func New() *Observable
New observable instance
Example ¶
package main
import (
"context"
"fmt"
"github.com/ysmood/goob"
)
func main() {
ob := goob.New()
ctx, unsubscribe := context.WithCancel(context.Background())
defer unsubscribe()
s := ob.Subscribe(ctx)
go func() {
ob.Publish(1)
ob.Publish(2)
ob.Publish(3)
}()
for e := range s {
fmt.Println(e)
if e.(int) == 3 {
break
}
}
}
Output: 1 2 3
func (*Observable) Count ¶ added in v0.1.0
func (ob *Observable) Count() int
Count of the subscribers
func (*Observable) Filter ¶
func (ob *Observable) Filter(ctx context.Context, iteratee interface{}) *Observable
Filter events
func (*Observable) Map ¶
func (ob *Observable) Map(ctx context.Context, iteratee interface{}) *Observable
Map events
Click to show internal directories.
Click to hide internal directories.