gpt4 book ai didi

swift - 如何在 RxSwift 中延迟地从 Collection 中一个接一个地发出项目

转载 作者:搜寻专家 更新时间:2023-11-01 05:43:43 27 4
gpt4 key购买 nike

我想从 anyCollection 创建一个 Observable,它会在延迟后一个一个地发出每个元素。此外,onNext 我想对项目(模型)执行一些更新。

例如:

//喂所有狗,一只一只,间隔5秒。

class Dog {
var name: String?
var age: Int?
var feeded = false

init(_ name: String, _ age: Int){
self.name = name
self.age = age
}
}

func feedDogs(){
let dog1 = Dog("Ren", 3)
let dog2 = Dog("Bega", 7)
let dog3 = Dog("Xuxu", 11)
let delay = 6 // seconds

let allDogs = [dog1, dog2, dog3]

// Observable....

// Expected results after subscribe
// Start - > 0 seconds
// dog1.feeded // true
// time lapse -> 6 seconds
// dog2. feeded // true
// timelapse -> 12 seconds
// dog3.feeded // true
}

我尝试使用像“zipWith”这样的“zip”(在 RxJava 中),但在 RxSwift 中似乎不被支持。

最佳答案

嗯...经过一些研发,这是针对我的问题的经过测试的工作版本。

Observable.zip(Observable.from(allDogs), Observable<Int>.interval(RxTimeInterval(delay), scheduler: MainScheduler.instance)).subscribe(onNext: { (dog, index) in
print(dog.name)
}
)

关于swift - 如何在 RxSwift 中延迟地从 Collection 中一个接一个地发出项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466268/

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