gpt4 book ai didi

ios - 在不使用创建 block 的情况下在 RxSwift 中返回一个可完成的

转载 作者:搜寻专家 更新时间:2023-10-31 08:10:28 25 4
gpt4 key购买 nike

我有一个从简单函数返回的 Completable。这不是异步调用,所以我只需要根据条件返回成功完成或错误(在这里使用 Rx,这样我就可以结合其他 Rx 用法):

func exampleFunc() -> Completable {
if successful {
return Completable.just() // What to do here???
} else {
return Completable.error(SomeErrorType.someError)
}
}

错误情况很容易处理,但是我有一个关于如何返回成功的可完成的 block (不需要 .create() 它)。

我想我只需要使用 Completable 的 .just().never(),但是 just 需要一个参数,并且 never 似乎不会触发完成事件。

最佳答案

.empty() 是我要找的运算符!

事实证明,我在脑海中混淆了 .never().empty() 的实现!

  • .never() 不发出任何项目并且终止
  • .empty() 不发出任何项目,但确实正常终止

所以,上面的示例代码是这样工作的:

func exampleFunc() -> Completable {
if successful {
return Completable.empty()
} else {
return Completable.error(SomeErrorType.someError)
}
}

这是 documentation在 empty/throw/never 运算符上。

关于ios - 在不使用创建 block 的情况下在 RxSwift 中返回一个可完成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45112973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com