rxswift在处理之前接收最后一个元素

问题描述

我有一个observable,将在一段时间后处置。我想要的是在处理可观察对象之前获取最后一个元素。我一直在尝试,但无法为此目的找到运营商。

ondisposed完成处理程序没有任何参数,因此在文档中我无法找到任何其他用于此目的的运算符。

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

解决方法

您需要takeLast运算符。同样,您可以不止一次订阅一个可观察的对象,并且实际上是可以预期的。许多初学者忘记了此功能:

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

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