我在R进程中收到了一些值,我想异步计算它们。我正在使用Promise和将来的程序包。 这就是我当前的代码:
arr = list()
i=0
while(i < 10)
{
a = read messages from KAFKA topic
arr[[i]] = future(DoSomething(a))
i = i + 1
}
现在,arr包含一个诺言列表
如何获得首先解决的诺言的value()(依此类推)? 像JavaScript中的promise.race之类的东西。
答案 0 :(得分:0)
编辑:我只是重新阅读了您的问题,发现您在询问获得第一个结果,而不仅仅是所有结果。下面是获得该代码的代码。这是一个while循环,等待任何结果准备就绪,然后在结果准备就绪时继续前进。
print
包中还有一个名为promise_race
的函数,但是promises包的问题在于它只能输出结果。您无法将产生的值返回到变量中,以便在主线程中进行进一步的计算。
promises