()
| 37 | } |
| 38 | |
| 39 | func (f *InnerFuture) Result() (string, error) { |
| 40 | f.once.Do(func() { |
| 41 | f.wg.Add(1) |
| 42 | defer f.wg.Done() |
| 43 | f.res = <-f.resCh |
| 44 | f.err = <-f.errCh |
| 45 | }) |
| 46 | |
| 47 | f.wg.Wait() |
| 48 | |
| 49 | return f.res, f.err |
| 50 | } |
| 51 | |
| 52 | func SlowFunction(ctx context.Context) Future { |
| 53 | resCh := make(chan string) |