0

SignalProducer producersを非同期に送信するがありますInt。値を合計できます

producer.scan(0, +)

合計をリセットし、0> 10の値が 1 秒間送信されていないとします。私の最初の試みは次のようになりました:

producer
  .scan(0, +)
  .flatMap(.latest) { n -> SignalProducer<Int, NoError> in
    if n <= 10 {
        return SignalProducer(value: n)
    } else {
        return SignalProducer.merge([
            SignalProducer(value: n),
            SignalProducer(value: 0).delay(1, on: QueueScheduler.main)
            ])
    }
  }

これは を正しく送信します0が、 の状態をリセットしませんscan。つまり、 send のシーケンス9, 8, long pause, 7です9, 17, 0, 24

状態を正しくリセットする方法でこれら 2 つの概念を組み合わせる方法はありますか?

4

1 に答える 1