Skip to content

Commit 698a341

Browse files
committed
Fix bugs in distinctUntilChanged, take, withOldValue
1 parent ec2ccb3 commit 698a341

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

Sources/Observable+Common.swift

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,10 @@ extension ObserveValueProtocol {
4949
var lastValue: ValueType?
5050

5151
return self.subscribe { result in
52-
if let lastValue = lastValue, !isEqual(lastValue, result) {
52+
if (lastValue.map { !isEqual($0, result) }) ?? true {
53+
lastValue = result
5354
observer(result)
54-
} else {
55-
if lastValue == nil {
56-
observer(result)
57-
}
5855
}
59-
60-
lastValue = result
6156
}
6257
}
6358
}
@@ -69,8 +64,9 @@ extension ObserveValueProtocol {
6964
return Observable { observer in
7065
var prevValue: ValueType?
7166
return self.subscribe { result in
72-
observer((result, prevValue))
67+
let oldPrevValue = prevValue
7368
prevValue = result
69+
observer((result, oldPrevValue))
7470
}
7571
}
7672
}
@@ -109,8 +105,8 @@ extension ObserveValueProtocol {
109105
var disposable: Disposable?
110106
disposable = self.subscribe { result in
111107
if counter < first {
112-
observer(result)
113108
counter += 1
109+
observer(result)
114110
} else {
115111
disposable?.dispose()
116112
disposable = nil

0 commit comments

Comments
 (0)