我有一个 Rust Tokio TCP 服务器。每个客户端都由 Tokio 未来链处理,如下所示:
let stream = <TcpStream from elsewhere>;
let task = database_connection
.and_then(connection| {
tokio::io::write_all(stream, SomeSuccessData);
}).map_err(|error| {
tokio::io::write_all(stream, SomeErrorData(error));
});
...
tokio::spawn(task);
问题是我不能TcpStream
在链的多个分支中使用相同的,因为tokio::io::write_all
消耗流,即使它应该以顺序方式使用。根据是否存在(例如,数据库错误)发送不同的数据至关重要。
我该如何克服这个问题?也许有不同的API?