String { some_func-6ren">
gpt4 book ai didi

rust - 我可以在 Rocket 中使用 async fn 作为处理程序吗?

转载 作者:行者123 更新时间:2023-12-03 11:23:45 26 4
gpt4 key购买 nike

我正在使用 Rocket 框架,我想在我的处理程序中发出一个异步 HTTP 请求,就像这样

#[get("/")]
async fn handler() -> String {
some_func().await;
"OK".into()
}

结果,我得到了下一个错误

the trait `rocket::response::Responder<'_>` is not implemented for `impl core::future::future::Future`

我试图编写实现但失败了。
有没有办法为 impl Trait 实现 trait?

或者可以指定 async fn 的返回类型,以便我可以返回实现了必要特征的自定义类型?

最佳答案

在 Rocket 0.5.0 发布之前,您将必须使用开发版本进行异步路由。值得注意的是,这也意味着您可以使用稳定的 Rust 进行编译。
在你的 Cargo.toml

rocket = { git = "https://github.com/SergioBenitez/Rocket" }
rocket_contrib = { git = "https://github.com/SergioBenitez/Rocket" }
使用开发版本后,您可以完全按照您在问题中所做的来编写异步路由。
请注意,各种 API 可能不同。见 https://api.rocket.rs/master/rocket/index.html用于开发版本的文档。

关于rust - 我可以在 Rocket 中使用 async fn 作为处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61323839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com