提问人:ペンで空を描く 提问时间:8/29/2022 更新时间:8/29/2022 访问量:152
rust 如何简单地从闭包中获得回报
How does rust simply get a return from a closure
问:
这是我在金牛座上遇到的问题。
'return' 向你显示我需要的返回值,我知道以这种方式编写它根本行不通。
“pick_file”是异步调用的,我知道消息传递似乎有效,但是有没有更简单的方法来获取我需要的值。
#[tauri::command]
fn open_file() -> String {
dialog::FileDialogBuilder::default()
.add_filter("data", &["json"])
.pick_file(|path_buf| match path_buf {
Some(p) => return format!("{}", p.to_str().unwrap()),
_ => return "".into()
});
}
答:
2赞
user4815162342
8/29/2022
#1
首先,在闭包中从闭包返回,而不是从包含它的函数返回。return
更根本的问题是,如果你使用 .根据文档,是非阻塞的,无需等待用户选择文件即可立即返回。在闭包中,您可以做的是将文件发送到一个通道,然后在其他地方拾取它。String
open_file()
FileDialogBuilder::pick_file()
pick_file()
上一个:异步移动闭包与折叠
评论