code: func (nc *Conn) oldRequestWithContext(ctx context.Context, subj string, data []byte) (*Msg, error) {
  	inbox := NewInbox()
  	ch := make(chan *Msg, RequestChanLen)
  
  	s, err := nc.subscribe(inbox, _EMPTY_, nil, ch, true)
  	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.NextMsgWithContext(ctx)
  }
docs: // oldRequestWithContext utilizes inbox and subscription per request.