【问题标题】:RxSwift like Actions for AndroidRxSwift 类似于 Android 的 Actions
【发布时间】:2018-02-28 14:14:42
【问题描述】:

几年前,我第一次接触到 ReactiveCocoa 的反应式编程。在那里,他们有了 RACCommands 的概念,并通过扩展库 Action 将其转移到 RxSwift。

正如他们的 GitHub 页面所述:

动作是一种表达“嘿,稍后我需要你订阅这个东西”的方式。

Action 接受 workFactory:一个闭包,它接受一些输入并产生一个 observable。当execute()被调用时,它会将其参数传递给这个闭包并订阅该工作。

  • 只能在“启用”时执行(如果未指定则为真)。
  • 一次只执行一件事。
  • 聚合各个执行的下一个/错误事件。

根据我的经验,在进行强大的响应式 iOS 开发时,它是响应式编程工具箱中绝对不可或缺的工具。


现在我们也想把它带到 Android 应用程序中。但是经过无数小时的研究后,我还是找不到 RxJava 或 RxKotlin 的相应组件。

Swift 中的实现相对简单,所以我们可以移植它,但我首先想听听:

  1. 这确实不存在,如果存在的话
  2. 这是否存在 Android 特定原因导致它不存在,即不移植它的原因

【问题讨论】:

  • 我不完全理解链接库(我不是 iOS/Swift 开发人员),但它有点类似于 RxJavaComputationExpressions (in v2) 或 Android 自己的 AsyncTask。我建议您重新考虑您想要实现的目标并使用简单的 RxJava 构造。
  • 您是否在考虑使用 Java Callable?您在 call 方法中包含一些要完成的工作,您可以将其提交给 Executor 以获取 Future 或使用 Observable.fromCallable() 将其变为 Observable

标签: android ios rx-java rx-swift rx-kotlin


【解决方案1】:

我们最终自己移植了 iOS 版本。

它是开源的,可以在这里找到:https://github.com/tonsser/kaction

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多