func (s *Scoped) Fetch(ctx context.Context) <-chan *FetchResult {
	ch := make(chan *FetchResult, 1)
	if s.parent == nil {
		ch <- &FetchResult{Err: ErrLookupOnTopLevel, Field: s.field}
		close(ch)
	} else {
		if r := s.FetchOneLocal(ctx); r.Err != nil || r.ValueExists {
			ch <- r
		}
		go s.fetchRemote(ctx, ch)
	}
	return ch
}
// Fetch fetches and listens for updates on the field and sends them to the
// resulting channel. This will error if called for a top-level field. The
// resulting channel is closed on Gun close, context completion, or when
// FetchDone is called with it. Users should ensure one of the three happen in a
// reasonable timeframe to stop listening and prevent leaks. This is a shortcut
// for FetchOneLocal (but doesn't send to channel if doesn't exist) followed by
// FetchRemote.
//
// This is the equivalent of the Gun JS API "on" function.
Fetch fetches and listens for updates on the field and sends them to the
resulting channel. This will error if called for a top-level field. The
resulting channel is closed on Gun close, context completion, or when
FetchDone is called with it. Users should ensure one of the three happen in a
reasonable timeframe to stop listening and prevent leaks. This is a shortcut
for FetchOneLocal (but doesn't send to channel if doesn't exist) followed by
FetchRemote.

This is the equivalent of the Gun JS API "on" function.
// Fetch fetches and listens for updates on the field and sends them to the // resulting channel . This will error if called for a top - level field . The // resulting channel is closed on Gun close context completion or when // FetchDone is called with it . Users should ensure one of the three happen in a // reasonable timeframe to stop listening and prevent leaks . This is a shortcut // for FetchOneLocal ( but doesn ' t send to channel if doesn ' t exist ) followed by // FetchRemote . // // This is the equivalent of the Gun JS API " on " function .
func (s *Scoped) Fetch(ctx context.Context) <-chan *FetchResult {
	ch := make(chan *FetchResult, 1)
	if s.parent == nil {
		ch <- &FetchResult{Err: ErrLookupOnTopLevel, Field: s.field}
		close(ch)
	} else {
		if r := s.FetchOneLocal(ctx); r.Err != nil || r.ValueExists {
			ch <- r
		}
		go s.fetchRemote(ctx, ch)
	}
	return ch
}
func ( s * Scoped ) Fetch ( ctx context . Context ) <- chan * FetchResult { ch := make ( chan * FetchResult , 1 ) if s . parent == nil { ch <- & FetchResult { Err : ErrLookupOnTopLevel , Field : s . field } close ( ch ) } else { if r := s . FetchOneLocal ( ctx ) ; r . Err != nil || r . ValueExists { ch <- r } go s . fetchRemote ( ctx , ch ) } return ch }
Fetch fetches and listens for updates on the field and sends them to the
resulting channel.
Fetch fetches and listens for updates on the field and sends them to the resulting channel .