Fix sync Call function
This commit is contained in:
parent
c2db3ee905
commit
724bef43b7
|
@ -389,7 +389,7 @@ func (serve *Serve) CallAsync(name string, header *network.Header, payload []byt
|
|||
}
|
||||
|
||||
// Синхронный вызов функции
|
||||
func (serve *Serve) Call(name string, header *network.Header, payload []byte) (result []byte, err error) {
|
||||
func (serve *Serve) Call(name string, header *network.Header, payload []byte) (result []byte, head *network.Header, err error) {
|
||||
chanRes := make(chan *ChanRes)
|
||||
serve.CallAsync(name, header, payload, func(err error, header *network.Header, result []byte) {
|
||||
chanRes <- &ChanRes{
|
||||
|
@ -400,6 +400,7 @@ func (serve *Serve) Call(name string, header *network.Header, payload []byte) (r
|
|||
})
|
||||
res := <-chanRes
|
||||
err = res.err
|
||||
head = res.header
|
||||
result = res.res
|
||||
|
||||
return
|
||||
|
|
|
@ -94,6 +94,7 @@ func TestCallFunctionAsync(t *testing.T) {
|
|||
func TestCallFunction(t *testing.T) {
|
||||
var err error
|
||||
err = serve.RegisterFunction("testFuncSimple", func(header *network.Header, paylod []byte) (result []byte, err error) {
|
||||
header.ResponseHeaders["test"] = "my test"
|
||||
return []byte("world"), nil
|
||||
})
|
||||
if err != nil {
|
||||
|
@ -101,7 +102,8 @@ func TestCallFunction(t *testing.T) {
|
|||
return
|
||||
}
|
||||
var result []byte
|
||||
result, err = serve.Call("default.test.testFuncSimple", nil, []byte("Hello"))
|
||||
var header *network.Header
|
||||
result, header, err = serve.Call("default.test.testFuncSimple", nil, []byte("Hello"))
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
|
@ -110,4 +112,9 @@ func TestCallFunction(t *testing.T) {
|
|||
t.Error("Function not returned \"world\"")
|
||||
return
|
||||
}
|
||||
if v, ok := header.ResponseHeaders["test"]; !ok {
|
||||
t.Errorf("not set response header")
|
||||
} else if v != "my test" {
|
||||
t.Errorf("got \"my test\", but expect \"%s\"", v)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user