ForEach 消费读取器中的所有值,对每个值调用 fn
(r *Reader[T], fn func(T) error)
| 647 | |
| 648 | // ForEach 消费读取器中的所有值,对每个值调用 fn |
| 649 | func ForEach[T any](r *Reader[T], fn func(T) error) error { |
| 650 | defer r.Close() |
| 651 | for { |
| 652 | v, err := r.Recv() |
| 653 | if errors.Is(err, io.EOF) { |
| 654 | return nil |
| 655 | } |
| 656 | if err != nil { |
| 657 | return err |
| 658 | } |
| 659 | if err := fn(v); err != nil { |
| 660 | return err |
| 661 | } |
| 662 | } |
| 663 | } |