This commit is contained in:
cdle
2021-10-11 21:29:30 +08:00
parent 31d1292a46
commit 704535e4e9
4 changed files with 50 additions and 48 deletions
+7 -7
View File
@@ -30,7 +30,7 @@ type Sender interface {
Finish()
Continue()
IsContinue() bool
Await(Sender, func(string, Sender, error) interface{}, ...interface{})
Await(Sender, func(Sender, error) interface{}, ...interface{})
}
type Edit int
@@ -224,7 +224,7 @@ type Carry struct {
Sender Sender
}
func (_ *BaseSender) Await(sender Sender, callback func(string, Sender, error) interface{}, params ...interface{}) {
func (_ *BaseSender) Await(sender Sender, callback func(Sender, error) interface{}, params ...interface{}) {
c := &Carry{}
timeout := time.Second * 20
for _, param := range params {
@@ -237,7 +237,7 @@ func (_ *BaseSender) Await(sender Sender, callback func(string, Sender, error) i
timeout = du
}
case func() string:
callback = param.(func(string, Sender, error) interface{})
callback = param.(func(Sender, error) interface{})
}
}
if callback == nil {
@@ -255,16 +255,16 @@ func (_ *BaseSender) Await(sender Sender, callback func(string, Sender, error) i
select {
case result := <-c.Chan:
switch result.(type) {
case string:
case Sender:
waits.Delete(key)
c.Result <- callback(result.(string), c.Sender, nil)
c.Result <- callback(c.Sender, nil)
return
case error:
waits.Delete(key)
c.Result <- callback("", c.Sender, result.(error))
c.Result <- callback(nil, result.(error))
}
case <-time.After(timeout):
waits.Delete(key)
c.Result <- callback("", c.Sender, TimeOutError)
c.Result <- callback(nil, TimeOutError)
}
}