0

RACSignal サブスクライバーの重複を防ぐ方法はありますか?

今、私は単純化したい方法でこれを修正することができました。

私は自分の信号を持っています:

ExampleAPI.ProgressList().signalValue.doCompleted({ () -> Void in
    self.titleProgressCallRunning = false
})

titleProgressCallRunningそして、それが開始されると、私は falseの場合にのみサブスクライブします:

private func getTitlesProgress() {
    if self.titleProgressCallRunning {
        return
    }

    self.titleProgressCallRunning = true

    titleProgressSignal.subscribeNextAs({ (titlesProgress:[VDLTitleProgress]) -> () in
        self.titlesProgress = titlesProgress

        NSNotificationCenter.defaultCenter().postNotificationName(kNotificationTitlesProgressUpdated, object: nil)
    })
}

Moya を使用しているため、リクエストはすでに 1 回しか実行されていません。しかし、getTitlesProgress メソッドを 2 回呼び出すとsubscribeNextAs、ブール値を使用せずにブロックが 2 回トリガーされます。titleProgressCallRunning

これを防ぐための良い解決策を探しています!

4

1 に答える 1