Ich verwende Rx, um eine Animationsuhr zu behalten. Jeder Animationsrahmen bildet ein Intervall-Tick auf die neuen Werte für dieses Häkchen ab.RxJS (5.0rc4): Einen Intervalltimer anhalten und fortsetzen
Angenommen, ich möchte die Animation anhalten. Der natürlichste Weg wäre, die Uhr rx irgendwie zu suspendieren und dann zu einem späteren Zeitpunkt wieder aufzunehmen.
Abbestellen, dann ist das Wiederbestellen keine natürliche Anpassung, weil diese Animationsuhr kalt beobachtbar ist. Ich möchte die Animation nicht neu starten, wenn sie fortgesetzt wird. Wenn ich eine Workaround-Methode einstelle, muss ich einen neuen Resume-Rx generieren, der alle exponierten APIs erheblich komplizierter macht.
Rückstau-Methoden nicht vielversprechend:
pause
funktioniert nicht, weil ich fortsetzen will, wo ich aufgehört habe, nicht nach vorne springen. Mit anderen Worten, ich möchte keine Zecken abwerfen, solange es ausgeschaltet ist.
pausableBuffered
funktioniert nicht, denn beim Fortsetzen werden alle angesammelten Ticks so schnell wie möglich geleert.
irgendeine Art eines virtuellen Zeit Scheduler vollständig Zeit zu stoppen und dann normale Zeit wieder aufnehmen könnte möglich sein (?)
Ich bin auf RxJS 5.0rc4, aber ich würde nicht wissen, wie das auf RxJS zu tun 4, entweder. Jeder Tipp für beide Versionen wäre willkommen.
Große Antwort. Der Umgang mit meinem eigenen Tick Counter mit einem Verschluss war der Schlüssel für mich. Dann kann ich das Intervall nach Belieben abonnieren und abbestellen, ohne mich darum sorgen zu müssen, dass ich den idx verliere. – masonk
Eine knifflige Sache ist aufgetaucht. Ich habe jetzt eine pausierbare Uhr, und das Intervall wird während einer Pause nicht zurückgesetzt. Wenn dieses Observable jedoch mehrfach abonniert ist, z. Wenn ich clock.repeat() sage oder wenn ich diese Uhr mehreren Beobachtern übergebe, möchte ich, dass jede Instanz des Abonnements ihr eigenes i hat. Im Moment erhöhen alle Abonnements für die Uhr den gleichen Zähler. – masonk