我尝试对reqwest工具进行一下简单的封装,遇到一个返回自定义错误的问题,如下代码:
type st = Pin<Box<dyn Stream<Item = Result<bytes::Bytes, reqwest::Error>> + Send>>
let mut stream: st = resp.bytes_stream().boxed();
这里流会返回reqwest::Error类型的错误,请问如果我想返回自定义错误应该如何做? 大概类似下面这样返回自定义错误MyError。
type st = Pin<Box<dyn Stream<Item = Result<bytes::Bytes, MyError>> + Send>>
谢谢。
你可以使用
map_err
函数将reqwest::Error
类型的错误转换为你自定义的MyError
类型的错误,例如:在这个例子中,将
reqwest::Error
类型的错误转换为了自定义的MyError
类型的错误,然后使用UnboundedSender<Result<Bytes, MyError>>
发送数据。使用UnboundedReceiver<Result<Bytes, MyError>>
接收数据时,可以使用match
语句将Result
类型的值分别处理。