2017-09-28 2 views
0

Betrachten Sie die folgenden zwei Variablen:Wie führe ich eine serielle Ausführung auf rxSwift Variable durch?

let int = Variable<Int>(1) 

let string = Variable<String>("hey!") 

nehmen wir an, dass sie alle schon zu einem gewissen UI gebunden, wie:

int.asObservable.bind(to:variable1) 
string.asObservable.bind(to:variable2) 

Wie kann ich sicherstellen, dass string.asObservable.bind(to:variable2) nur ausgeführt wird, nachdem int.asObservable.bind(to:variable1) gewesen hingerichtet?

+0

Sind Sie sicher durch Design als die 2 Werte werden jedes Mal aktualisiert werden? – CZ54

+0

@ CZ54 was meinst du? – progammingBeignner

+0

jede Änderung von int wird von einem Wechsel der Zeichenfolge gefolgt? – CZ54

Antwort

0

Ihre int und string sind zwei verschiedene variables. Dies bedeutet, dass jede Variable unabhängig voneinander geändert werden kann.

Sie können sie sicher sein, kommen Sie, dass diese Werte gleichzeitig geändert werden und verzögern so die zweite Bindung:

let values = Variable<(int: Int, string: String)>((1, "hey!")) 
values 
    .asObservable() 
    .map({ $0.int }) 
    .bind(to: variable1) 
values 
    .asObservable() 
    .map({ $0.string }) 
    .delay(0.1, scheduler: MainScheduler.instance) 
    .bind(to: variable2) 
Verwandte Themen