百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
F

futures-await

> 编程语言
开源

futures-await 现在 async/await 正式成为 Rust 语言的一部分,这要感谢所有帮助我们的开发者。

739 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

futures-await 现在 async/await 正式成为 Rust 语言的一部分,这要感谢所有帮助我们的开发者。

futures-await

现在 async/await 正式成为 C# 的一部分,这个框架就不再需要了 Rust 语言,感谢所有帮助实现这一目标的人! Rust 和 futures 库的 Async/await 语法

这是什么?

目前在 Rust 中处理期货的主要方式是通过各种 在 [Future] 特性上使用组合器。这并不完全是“回调地狱”,但可能 有时感觉就像代码的右移趋势在每个新版本中都在增加 你添加的关闭。async/await 的目的是提供更加强大的异步功能。 在保留异步所有功能的同时,为代码提供"同步"感受 密码! 以下是这个箱子的功能简要介绍:

rust
#[async]
fn fetch_rust_lang(client: hyper::Client) -> io::Result {
    let response = await!(client.get("https://www.rust-lang.org"))?;
    if !response.status().is_success() {
        return Err(io::Error::new(io::ErrorKind::Other, "request failed"))
    }
    let body = await!(response.body().concat())?;
    let string = String::from_utf8(body)?;
    Ok(string)
}

这里的主要内容是:

  • 函数带有#[async]标签,这意味着它们是异步的,调用时会返回一个未来,而不是返回列出的结果。 * await!宏允许在未来完成时进行阻塞。虽然这实际上不会阻塞线程,但它只是"阻塞"了从fetch_rust_lang返回的未来,使其无法继续。你可以将await!宏看作是从未来到其Result的函数,在过程中消耗了未来。 * 在#[async]函数中,错误处理更加自然。我们可以使用?运算符以及简单的return Err语句。使用futures库中的组合器通常更加繁琐。 * 从fetch_rust_lang返回的未来实际上是在编译时生成的状态机,不会进行隐式内存分配。它是基于下面描述的生成器构建而成。

您还可以使用异步方法:

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言