Return 函数的未来值

Return Future value from a function

我最近开始学习 Rust,我不确定如何从一个应该 return 结果的函数中 return 未来值。当我尝试 return 只是响应变量并删除结果输出时,我得到一个错误:cannot use the ? operator in a function that returns std::string::String

#[tokio::main]
async fn download() -> Result<(),reqwest::Error> {
    let url = "https://query1.finance.yahoo.com/v8/finance/chart/TSLA";
    let response = reqwest::get(url)
                            .await?
                            .text()
                            .await?;
    Ok(response)
 }

我在 main() 中期望的是获取并打印响应值:

fn main() {
    let response = download();
    println!("{:?}", response)
}

我想你的代码应该是这样的

extern crate tokio; // 0.2.13

async fn download() -> Result<String, reqwest::Error> {
    let url = "https://query1.finance.yahoo.com/v8/finance/chart/TSLA";

    reqwest::get(url).await?.text().await
}

#[tokio::main]
async fn main() {
    let response = download().await;

    println!("{:?}", response)
}

这里是rust playground link