modernice / goes

goes is an event-sourcing framework for Go.
https://goes.modernice.dev
Apache License 2.0
134 stars 12 forks source link

Event subscription helper/tools #14

Closed bounoable closed 2 years ago

bounoable commented 2 years ago

Wait for a single event to be published, then cancel the subscription

package example

func example(ctx context.Context, bus event.Bus) {
    evt, errs, err := eventbus.Await(ctx, bus, "foo-evt")
    if err != nil {
        panic(err)
    }

    select {
    case <-ctx.Done():
        panic(ctx.Error())
    case err := <-errs:
        panic(err)
    case e := <-evt:
        log.Println(e)
    }
}