gitee.com/woood2/luca@v1.0.4/cmd/consumer/internal/subscriber/chain.go (about)

     1  package subscriber
     2  
     3  type Chain struct {
     4  	wrappers []MsgMiddleware
     5  }
     6  
     7  func NewChain(c ...MsgMiddleware) Chain {
     8  	return Chain{c}
     9  }
    10  
    11  func (c Chain) Then(h MsgHandler) MsgHandler {
    12  	for i := range c.wrappers {
    13  		h = c.wrappers[len(c.wrappers)-i-1](h)
    14  	}
    15  	return h
    16  }