只要咱们的业务逻辑包含网络交互,就必须考虑:若是请求失败了,该怎么处理?网络
正常的状况下,有两种处理方式:函数
在代码上进行抽象处理,咱们能够归纳为:code
// 函数只是用来举例,自己是一个处理熔断的包 type runFunc func() error type fallbackFunc func(error) error func Go(name string, run runFunc, fallback fallbackFunc) chan error { }
咱们执行函数run
,若是返回成功,则整个函数返回;若是函数run
执行失败,则执行函数fallback
。string