首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin多平台可观测模式

Kotlin多平台可观测模式
EN

Stack Overflow用户
提问于 2022-06-22 00:41:54
回答 1查看 58关注 0票数 1

我在android和ios端有两个应用程序。两个应用程序都使用阿波罗图形库。所以我决定把它用在kotlin多图书馆项目上。这种用法一切都很好。

代码语言:javascript
运行
复制
suspend fun addFeedback(request: AddFeedBackRequest): BaseResponseModel<Any> {

        val feedBackType = if (request.type == AddFeedBackType.Bug) {
            FeedbackType.BUG
        } else {
            FeedbackType.FEEDBACK
        }

        val input = AddFeedbackInput(request.note, Optional.presentIfNotNull(feedBackType))

        val mutation = AddFeedbackMutation(input)

        val response = executeMutation(mutation)

        if (response.isFailed()) return onError()

        return onSuccess()

    }

当我想在android应用程序上使用这个方法时,我可以这样使用它

代码语言:javascript
运行
复制
 lifecycleScope.launch {

            HelpRepository().addFeedback(AddFeedBackRequest(AddFeedBackType.Bug, ""))

        }

我一直在寻找我找到的可观察的模式[https://github.com/badoo/Reaktive[1](https://github.com/badoo/Reaktive.]

可观察的rx kotlin用法库

例如,我想在android端使用addFeedBack方法,如下所示

代码语言:javascript
运行
复制
HelpRepository()
  .addFeedback()
    .onSuccess { response ->
    }
    .onLoading { state ->
    }
    .onError { err ->
    }

最近两天,我搜索了这座建筑,但是我什么也找不到了。任何你可以帮助的主题或例子项目?

谢谢你这么说

EN

回答 1

Stack Overflow用户

发布于 2022-06-22 19:31:23

如果要使用Reaktive,可以执行以下操作:

  1. 添加以下依赖项:com.badoo.reaktive:reaktive:<version>com.badoo.reaktive:coroutines-interop:<version>
  2. 将方法签名更改为以下内容:fun addFeedback(request: AddFeedBackRequest): Single<T>
  3. 在此方法中,使用singleFromCoroutine {}函数将挂起调用executeMutation包装为Single<T>
  4. 请按以下方式使用:
代码语言:javascript
运行
复制
val disposable = HelpRepository()
  .addFeedback()
  .doOnBeforeSubscribe { /* Loading started */ }
  .subscribe(
    onSuccess = { response -> },
    onError = { e -> }
  )

由于您还在与iOS共享代码,请阅读以下文档:对于旧的记忆模型对于新的内存模型

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72708494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档