簡體   English   中英

如何使用RxSwift觀察數組中的值

[英]How to observe the value in array with RxSwift

有班有布爾的財產

class Coupon: NSObject {
    var invalid: Bool = false
}

我創建一個數組[Coupon],我需要將coupon.invalid一次修改為true。當所有這些coupon.invalid == true時,我就可以處理下一個任務,如何使用RxSwift實現此邏輯?幫幫我~~

首先,使Coupon類型成為結構而不是類。

struct Coupon {
    var invalid = false
}

並將您的數組嵌入變量中。

let coupons = Variable<[Coupon]>([])
coupons.value = getAllTheCoupons()

現在,您可以創建一個可觀察值,每當所有值都為true時便會發出一個值。

let allTrue = coupons.asObservable()
    .map { coupons in
        coupons.contains(where: { $0.invalid == false }) == false
    }
    .filter { $0 }

allTrue.subscribe(onNext: { _ in
    print("process next task.")
}).disposed(by: bag)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM