1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-29 17:41:15 +03:00

Call all After* hooks and return first error

This commit is contained in:
Vladimir Mihailenco
2019-07-09 10:02:40 +03:00
parent 69cf7e5f6f
commit e3bb77e6eb

View File

@ -66,14 +66,15 @@ func (hs hooks) beforeProcess(ctx context.Context, cmd Cmder) (context.Context,
} }
func (hs hooks) afterProcess(ctx context.Context, cmd Cmder) (context.Context, error) { func (hs hooks) afterProcess(ctx context.Context, cmd Cmder) (context.Context, error) {
var firstErr error
for _, h := range hs.hooks { for _, h := range hs.hooks {
var err error var err error
ctx, err = h.AfterProcess(ctx, cmd) ctx, err = h.AfterProcess(ctx, cmd)
if err != nil { if err != nil && firstErr == nil {
return nil, err firstErr = err
} }
} }
return ctx, nil return ctx, firstErr
} }
func (hs hooks) processPipeline( func (hs hooks) processPipeline(
@ -106,14 +107,15 @@ func (hs hooks) beforeProcessPipeline(ctx context.Context, cmds []Cmder) (contex
} }
func (hs hooks) afterProcessPipeline(ctx context.Context, cmds []Cmder) (context.Context, error) { func (hs hooks) afterProcessPipeline(ctx context.Context, cmds []Cmder) (context.Context, error) {
var firstErr error
for _, h := range hs.hooks { for _, h := range hs.hooks {
var err error var err error
ctx, err = h.AfterProcessPipeline(ctx, cmds) ctx, err = h.AfterProcessPipeline(ctx, cmds)
if err != nil { if err != nil && firstErr == nil {
return nil, err firstErr = err
} }
} }
return ctx, nil return ctx, firstErr
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------