Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 锈蚀:方法“;投票;在'impl std::future::future'中找不到`_Rust - Fatal编程技术网

Rust 锈蚀:方法“;投票;在'impl std::future::future'中找不到`

Rust 锈蚀:方法“;投票;在'impl std::future::future'中找不到`,rust,Rust,我试图学习异步编程,但这个非常基本的示例不起作用: use std::future::Future; fn main() { let t = async { println!("Hello, world!"); }; t.poll(); } 我从说明书中读到的所有信息都表明这应该是可行的,但cargo抱怨在“impl std::future::future”中找不到“poll”方法。我做错了什么?有以下签名: fn poll(self:Pin,cx:&

我试图学习异步编程,但这个非常基本的示例不起作用:

use std::future::Future;

fn main() {
    let t = async {
        println!("Hello, world!");
    };
    t.poll();
}
我从说明书中读到的所有信息都表明这应该是可行的,但cargo抱怨在“impl std::future::future”中找不到“poll”方法。我做错了什么?

有以下签名:

fn poll(self:Pin,cx:&mut Context
参数。该上下文由异步运行时创建,并传递给最外层未来的
poll
函数。这意味着您不能只轮询这样的未来,您需要在异步运行时中进行轮询

相反,您可以使用板条箱或在同步上下文中运行future:

东京 使用tokio::runtime::runtime; 让runtime=runtime::new().unwrap(); 让result=runtime.block_开启(异步{ // ... }); //异步标准 让结果=async_std::task::block_on(异步{ // ... }) 或者更好,您可以使用或将
main
函数转换为异步函数:

东京 #[tokio::main] 异步fn main(){ // ... } //异步标准 #[async_std::main] 异步fn main(){ // ... }
您到底想用代码做什么?通常在编写异步应用程序时,您不会直接使用
。poll
,而是使用
await
或来自的方法。我主要只是学习系统如何工作。我不能在非异步上下文中使用await,因此我试图找出如何调用异步方法在非异步上下文中。