r - 将未来的进展或从承诺传回主流程?
问题描述
说我有这个:
library(future)
plan(multisession)
promise = promises::future_promise({
for (i in 1:100) {
Sys.sleep(1)
## SOMEHOW REPORT PROGRESS TO MAIN HERE ##
}
i
})
最后,它会以 100 的值解决 promise,但是如何i
在 promise 的 worker 仍在运行时报告每个值?最简单的方法是什么?
我在 Windows 10 上,使用 Rstudio。
谢谢!
解决方案
不知道如何使用 来做到这一点promise
,但另一种方法是使用future.apply
and progressr
:
library(future.apply)
library(progressr)
plan(multisession)
handlers(global = TRUE)
handlers("progress")
my_fcn <- function(xs) {
p <- progressor(along = xs)
y <- future_lapply(xs, function(x, ...) {
Sys.sleep(1)
p()
})
}
my_fcn(1:100)
推荐阅读
- ios - 添加后 GMSMarker 未在地图上显示
- angular - 单击表格列后将焦点设置在输入字段上(Angular 7)
- python - 从 .txt 填充 pandas 数据帧,从多个 .txt 行读取单个数据帧行信息
- c# - 将对话历史从 MS bot 保存到 cosmos db
- ubuntu - VSCode 不使用 nautilus 打开文件或文件夹
- amazon-web-services - 在 AWS 中保留起始 URL 时重定向 URL
- ios - 如何通过 Firebase 云功能向所有用户发送推送通知?
- sql - 级联删除时的 SQL Server 死锁
- angular - 在角度 7 中更改父组件中的变量
- php - PHP 会话在多个网站上不可用