## 函数的入参是一个async function 因为我们使用了trait bound,所以不能用`Fn() -> impl Future<Output=Result<Return, sql::Error>>`的方式. ```rust use core::future::Future; pub async fn on_tran<F, Fut>(f: F) -> usize where F: Fn() -> Fut, Fut: Future<Output=usize> { f().await } #[tokio::main] async fn main() { let foo = || { async { 8 as usize } }; println!("{}", on_tran(foo).await); } ```