提交 7edc7de2 作者: Kevin Atkinson

Eliminate `emit` closure, so something with errors on call to emit.

License: MIT
Signed-off-by: 's avatarKevin Atkinson <k@kevina.org>
上级 c0a873c2
...@@ -6,7 +6,7 @@ import ( ...@@ -6,7 +6,7 @@ import (
"sort" "sort"
"strings" "strings"
"unicode" "unicode"
"github.com/ipfs/go-ipfs/core/commands/e" "github.com/ipfs/go-ipfs/core/commands/e"
cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid" cid "gx/ipfs/QmPSQnBKM9g7BaUcZCvswUJVscQ1ipjmwxN5PXCjkp9EQ7/go-cid"
...@@ -153,21 +153,17 @@ func (i *argumentIterator) err() error { ...@@ -153,21 +153,17 @@ func (i *argumentIterator) err() error {
func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts) error { func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts) error {
itr := argumentIterator{req.Arguments, req.BodyArgs()} itr := argumentIterator{req.Arguments, req.BodyArgs()}
for { var emitErr error
for emitErr == nil {
cidStr, ok := itr.next() cidStr, ok := itr.next()
if !ok { if !ok {
break break
} }
emit := func(fmtd string, err error) { res := &CidFormatRes{CidStr: cidStr}
res := &CidFormatRes{CidStr: cidStr, Formatted: fmtd}
if err != nil {
res.ErrorMsg = err.Error()
}
resp.Emit(res)
}
c, err := cid.Decode(cidStr) c, err := cid.Decode(cidStr)
if err != nil { if err != nil {
emit("", err) res.ErrorMsg = err.Error()
emitErr = resp.Emit(res)
continue continue
} }
base := opts.newBase base := opts.newBase
...@@ -177,7 +173,8 @@ func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts) ...@@ -177,7 +173,8 @@ func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts)
if opts.verConv != nil { if opts.verConv != nil {
c, err = opts.verConv(c) c, err = opts.verConv(c)
if err != nil { if err != nil {
emit("", err) res.ErrorMsg = err.Error()
emitErr = resp.Emit(res)
continue continue
} }
} }
...@@ -186,7 +183,15 @@ func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts) ...@@ -186,7 +183,15 @@ func emitCids(req *cmds.Request, resp cmds.ResponseEmitter, opts cidFormatOpts)
// no point in continuing if there is a problem with the format string // no point in continuing if there is a problem with the format string
return err return err
} }
emit(str, err) if err != nil {
res.ErrorMsg = err.Error()
} else {
res.Formatted = str
}
emitErr = resp.Emit(res)
}
if emitErr != nil {
return emitErr
} }
err := itr.err() err := itr.err()
if err != nil { if err != nil {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论