中间件
提取器允许你用一些代码包装你的服务器函数,这些代码可以改变请求或响应。Dioxus全栈与Tower集成,允许你用中间件包装你的服务器函数。
你可以使用#[middleware]
属性为你的服务器函数添加一层中间件。让我们为服务器函数添加一个超时中间件。如果函数执行时间超过一定时间,这个中间件将停止运行服务器函数:
#[server]
// 为服务器函数添加一个超时中间件,如果函数执行时间超过1秒,将返回错误
#[middleware(tower_http::timeout::TimeoutLayer::new(std::time::Duration::from_secs(1)))]
pub async fn timeout() -> Result<(), ServerFnError> {
tokio::time::sleep(std::time::Duration::from_secs(2)).await;
Ok(())
}