code: func (f *Future) Wait(timeout time.Duration) error {
  	select {
  	case <-f.completeChannel:
  		return nil
  	case <-f.cancelChannel:
  		return ErrCanceled
  	case <-time.After(timeout):
  		return ErrTimeout
  	}
  }
docs: // Wait will wait the given amount of time and return whether the future has been
  // completed, canceled or the request timed out.