# 设置降级函数 这个是比较高级的用法,需要和断路器一起使用,在SD中只有HttpClientRequestCoroutine,TcpClientRequestCoroutine默认使用到了断路器,这个2个协程方法主要是为HTTP和TCP请求服务的。 函数原型 ``` function setDowngrade(callable $func) ``` 使用方法 ``` $response = yield $this->GetIPAddressHttpClient->httpClient ->setQuery(['format' => 'json', 'ip' => $ip]) ->coroutineExecute('/iplookup/iplookup.php')->setTimeout(400)->setDowngrade(function(){ return '1234'; }); ``` 好了上面的例子是使用了一个HttpClientPool,后面会介绍。 首先我们先设置了一个timeout时间为400ms,如果发起这个请求后400毫秒没有收到消息那么我们认为这个请求超时,如果设置了降级函数setDowngrade,我们会直接返回降级函数中的内容,在上面的代码中我们会收到1234。 关于断路器的解释请看专门的章节。