【问题标题】:rxswift receiving last element before disposingrxswift 在处理之前接收最后一个元素
【发布时间】:2020-08-20 10:04:59
【问题描述】:

我有一个observable,它会在一段时间后被处理掉。我想要的是在处理可观察对象之前获取最后一个元素。我一直在尝试,但我找不到为此目的的操作员。

onDisposed 完成处理程序没有任何参数作为参数,并且通过文档我找不到任何其他运算符用于此目的。

selectedObservable
            .subscribe(onNext: { isSelected in
                //Do something
            }onDisposed:{
               //Somehow get the last emitted element
            })
            .disposed(by: disposeBag)

【问题讨论】:

  • 这个要求对我来说似乎很臭......您试图通过在处置前获取最后一个元素来解决什么问题?

标签: swift observable reactive-programming rx-swift


【解决方案1】:

您需要 takeLast 运算符。此外,您可以多次订阅 observable,实际上这是预期的。许多初学者忘记了这种能力:

selectedObservable
    .subscribe(onNext: { isSelected in
        // do something
    })

selectedObservable
    .takeLast(1)
    .subscribe(onNext: { lastSelected in
        // this is the last value emitted
    })

【讨论】:

    猜你喜欢
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多