如何使用RxSwift Observable <Int> .interval?

PEZ*_*PEZ 6 swift rx-swift

我试图以给定的时间间隔在"脉冲"上发出序列.一切都是新的Rx,但认为这样做:

import RxSwift
let db = DisposeBag()

_ = Observable<Int>.interval(1.0, scheduler: MainScheduler.instance)
    .debug("interval")
    .subscribe(onNext: {
        print($0)
    })
    .addDisposableTo(db)
Run Code Online (Sandbox Code Playgroud)

但它只输出:

2017-09-25 06:12:41.161: interval -> subscribed
Run Code Online (Sandbox Code Playgroud)

仅此而已.我在这里不理解什么?

小智 10

您的代码没有任何问题.处理袋应该是活的.但是,一旦最后一条指令运行,操场执行就会结束,因此问题就出现了.

为了告诉操场在执行完所有内容后继续运行,您必须导入PlaygroundSupport并告诉页面继续运行:

import RxSwift
import PlaygroundSupport

let db = DisposeBag()

Observable<Int>.interval(1.0, scheduler: MainScheduler.instance)
    .debug("interval")
    .subscribe(onNext: {
        print($0)
    })
    .addDisposableTo(db)

PlaygroundPage.current.needsIndefiniteExecution = true
Run Code Online (Sandbox Code Playgroud)

  • 在 RxSwift5 中:```Observable&lt;Int&gt;.interval(.seconds(1.0), scheduler: ...``` (2认同)
  • 怎么才能停止这个计时器呢? (2认同)