我读了许多关于R
的promises
(包括这个)的文章,但仍然不明白。
看代码:
library(future)
library(promises)
plan(multiprocess)
read.csv.async <- function(file, header = TRUE, stringsAsFactors = FALSE) {
future({
read.csv(file, header = header, stringsAsFactors = stringsAsFactors)
})
}
df_promise <- read.csv.async("https://rstudio.github.io/promises/data.csv")
df_promise %...>% filter(state == "NY")
df_filtered_promise <- df_promise %...>% filter(state == "NY")
df_filtered_promise
class(df_filtered_promise)
输出:
> read.csv.async <- function(file, header = TRUE, stringsAsFactors = FALSE) {
+ future({
+ read.csv(file, header = header, stringsAsFactors = stringsAsFactors)
+ })
+ }
>
> df_promise <- read.csv.async("https://rstudio.github.io/promises/data.csv")
>
> df_promise %...>% filter(state == "NY")
>
> df_filtered_promise <- df_promise %...>% filter(state == "NY")
>
> df_filtered_promise
<Promise [pending]>
> df_filtered_promise
<Promise [fulfilled: data.frame]>
> class(df_filtered_promise)
[1] "promise"
为什么fullfilled
的promise没有返回其值?我该如何提取数据框架?
future
如何工作,而是promises
。 - Tazlibrary(promises)
。 - Tazdf_promise %...>% print()
并将其打印出来,但我不想要它被打印,我想要它被实现/收集。我想知道promises
的意图是否完全不涉及用户交互,而是更多的是针对shiny
(在其上表现良好)。 - r2evans