code: func (nc *Conn) oldRequest(subj string, data []byte, timeout time.Duration) (*Msg, error) {
  	inbox := NewInbox()
  	ch := make(chan *Msg, RequestChanLen)
  
  	s, err := nc.subscribe(inbox, _EMPTY_, nil, ch, false)
  	if err != nil {
  		return nil, err
  	}
  	s.AutoUnsubscribe(1)
  	defer s.Unsubscribe()
  
  	err = nc.PublishRequest(subj, inbox, data)
  	if err != nil {
  		return nil, err
  	}
  	return s.NextMsg(timeout)
  }
docs: // oldRequest will create an Inbox and perform a Request() call
  // with the Inbox reply and return the first reply received.
  // This is optimized for the case of multiple responses.