You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/BasicOperators.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -140,7 +140,7 @@ The `map` operator is used to transform the values in an event stream, creating
140
140
a new stream with the results.
141
141
142
142
```Swift
143
-
let (signal, observer) = Signal<String, NoError>.pipe()
143
+
let (signal, observer) = Signal<String, Never>.pipe()
144
144
145
145
signal
146
146
.map { string in string.uppercased() }
@@ -159,7 +159,7 @@ The `filter` operator is used to only include values in an event stream that
159
159
satisfy a predicate.
160
160
161
161
```Swift
162
-
let (signal, observer) = Signal<Int, NoError>.pipe()
162
+
let (signal, observer) = Signal<Int, Never>.pipe()
163
163
164
164
signal
165
165
.filter { number in number %2==0 }
@@ -180,7 +180,7 @@ combined value. Note that the final value is only sent after the input stream
180
180
completes.
181
181
182
182
```Swift
183
-
let (signal, observer) = Signal<Int, NoError>.pipe()
183
+
let (signal, observer) = Signal<Int, Never>.pipe()
184
184
185
185
signal
186
186
.reduce(1) { $0*$1 }
@@ -197,7 +197,7 @@ a single array value. Note that the final value is only sent after the input
197
197
stream completes.
198
198
199
199
```Swift
200
-
let (signal, observer) = Signal<Int, NoError>.pipe()
200
+
let (signal, observer) = Signal<Int, Never>.pipe()
201
201
202
202
signal
203
203
.collect()
@@ -226,8 +226,8 @@ least one value. After that, new values on any of the inputs will result in
226
226
a new value on the output.
227
227
228
228
```Swift
229
-
let (numbersSignal, numbersObserver) = Signal<Int, NoError>.pipe()
230
-
let (lettersSignal, lettersObserver) = Signal<String, NoError>.pipe()
229
+
let (numbersSignal, numbersObserver) = Signal<Int, Never>.pipe()
230
+
let (lettersSignal, lettersObserver) = Signal<String, Never>.pipe()
231
231
232
232
let signal = Signal.combineLatest(numbersSignal, lettersSignal)
233
233
signal.observeValues { next inprint("Next: \(next)") }
@@ -256,8 +256,8 @@ That means the Nth value of the output stream cannot be sent until each input
256
256
has sent at least N values.
257
257
258
258
```Swift
259
-
let (numbersSignal, numbersObserver) = Signal<Int, NoError>.pipe()
260
-
let (lettersSignal, lettersObserver) = Signal<String, NoError>.pipe()
259
+
let (numbersSignal, numbersObserver) = Signal<Int, Never>.pipe()
260
+
let (lettersSignal, lettersObserver) = Signal<String, Never>.pipe()
261
261
262
262
let signal = Signal.zip(numbersSignal, lettersSignal)
263
263
signal.observeValues { next inprint("Next: \(next)") }
@@ -309,9 +309,9 @@ Note, how the values interleave and which values are even included in the result
309
309
The `.merge` strategy immediately forwards every value of the inner event streams to the outer event stream. Any failure sent on the outer event stream or any inner event stream is immediately sent on the flattened event stream and terminates it.
310
310
311
311
```Swift
312
-
let (lettersSignal, lettersObserver) = Signal<String, NoError>.pipe()
313
-
let (numbersSignal, numbersObserver) = Signal<String, NoError>.pipe()
314
-
let (signal, observer) = Signal<Signal<String, NoError>, NoError>.pipe()
312
+
let (lettersSignal, lettersObserver) = Signal<String, Never>.pipe()
313
+
let (numbersSignal, numbersObserver) = Signal<String, Never>.pipe()
314
+
let (signal, observer) = Signal<Signal<String, Never>, Never>.pipe()
@@ -334,9 +334,9 @@ numbersObserver.send(value: "3") // prints "3"
334
334
The `.concat` strategy is used to serialize events of the inner event streams. The outer event stream is started observed. Each subsequent event stream is not observed until the preceeding one has completed. Failures are immediately forwarded to the flattened event stream.
335
335
336
336
```Swift
337
-
let (lettersSignal, lettersObserver) = Signal<String, NoError>.pipe()
338
-
let (numbersSignal, numbersObserver) = Signal<String, NoError>.pipe()
339
-
let (signal, observer) = Signal<Signal<String, NoError>, NoError>.pipe()
337
+
let (lettersSignal, lettersObserver) = Signal<String, Never>.pipe()
338
+
let (numbersSignal, numbersObserver) = Signal<String, Never>.pipe()
339
+
let (signal, observer) = Signal<Signal<String, Never>, Never>.pipe()
The code above will not compile with the following error on the `.startWithCompleted` call `error: cannot convert value of type 'Disposable' to closure result type '()'. To find the actual compile error, the chain needs to be broken apart. Add explicit definitions of closure types on each of the steps:
27
27
28
28
```swift
29
-
let initialProducer = SignalProducer<Int, NoError>.init(value:42)
29
+
let initialProducer = SignalProducer<Int, Never>.init(value:42)
30
30
let sideEffectProducer = initialProducer.on(value: { (answer: Int) in
0 commit comments