代表潜在延迟异步计算并有可能订阅其完成的模式的惯用 Ruby 模拟是什么?即类似于 .NET System.Threading.Task
或 Python 3.x concurrent.futures.future
的内容。
请注意,这并不一定意味着多线程 - “ future ”对象的实际实现很可能会使用其他一些方式来安排工作和获取结果,这超出了问题的范围。该问题与提供给对象用户的 API 密切相关。
最佳答案
我不确定 Vanilla Ruby,但 EventMachine 有 deferrables .
另外,查看 this article .
EM.run {
detector = LanguageDetector.new("Sgwn i os yw google yn deall Cymraeg?")
detector.callback { |lang| puts "The language was #{lang}" }
detector.errback { |error| puts "Error: #{error}" }
}
关于ruby - Ruby 中的任务/ future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371875/