diff --git a/config/reference_config.go b/config/reference_config.go index 4896c6db14d1b26ed2d2fcf6b4462e824f470618..35c051e7d6970f1d5a6da534ad34fcf206bc5cec 100644 --- a/config/reference_config.go +++ b/config/reference_config.go @@ -143,7 +143,13 @@ func (refconfig *ReferenceConfig) Refer() { } //create proxy - refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetProxy(refconfig.invoker, url) + if refconfig.Async { + refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetProxy(refconfig.invoker, url) + callback := GetCallback(refconfig.id) + refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetAsyncProxy(refconfig.invoker, callback, url) + } else { + refconfig.pxy = extension.GetProxyFactory(consumerConfig.ProxyFactory).GetProxy(refconfig.invoker, url) + } } // @v is service provider implemented RPCService