From 0306cac84b7e2d3167ce01678a2b22cb2e5c5a9d Mon Sep 17 00:00:00 2001 From: MeXx Date: Thu, 4 Jun 2015 09:46:56 +0200 Subject: [PATCH] Add completion events to the `combineLatest` and `zip` examples --- Documentation/BasicOperators.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Documentation/BasicOperators.md b/Documentation/BasicOperators.md index 6036c629..5b63701c 100644 --- a/Documentation/BasicOperators.md +++ b/Documentation/BasicOperators.md @@ -194,35 +194,41 @@ let (numbersSignal, numbersSink) = Signal.pipe() let (lettersSignal, lettersSink) = Signal.pipe() combineLatest(numbersSignal, lettersSignal) - |> observe(next: { println($0) }) + |> observe(next: { println($0) }, + completed: { println("Completed") }) sendNext(numbersSink, 0) // nothing printed sendNext(numbersSink, 1) // nothing printed sendNext(lettersSink, "A") // prints (1, A) sendNext(numbersSink, 2) // prints (2, A) +sendCompleted(numbersSink) // nothing printed sendNext(lettersSink, "B") // prints (2, B) sendNext(lettersSink, "C") // prints (2, C) +sendCompleted(lettersSink) // prints "Completed" ``` The `combineLatestWith` operator works in the same way, but as an operator. ### Zipping -The `zip` function combines values of two signals into pairs. The elements of any Nth pair are the Nth elements of the two input signals. That means the output signal will always wait for both input signals to send and ouptut. +The `zip` function combines values of two signals into pairs. The elements of any Nth pair are the Nth elements of the two input signals. That means the output signal will always wait for both input signals to send and output. ```Swift let (numbersSignal, numbersSink) = Signal.pipe() let (lettersSignal, lettersSink) = Signal.pipe() zip(numbersSignal, lettersSignal) - |> observe(next: { println($0) }) + |> observe(next: { println($0) }, + completed: { println("Completed") }) sendNext(numbersSink, 0) // nothing printed sendNext(numbersSink, 1) // nothing printed -sendNext(lettersSink, "A") // prints (0, A) -sendNext(numbersSink, 2) // nothing printed -sendNext(lettersSink, "B") // prints (1, B) -sendNext(lettersSink, "C") // prints (2, C) +sendNext(lettersSink, "A") // prints (1, A) +sendNext(numbersSink, 2) // prints (2, A) +sendCompleted(numbersSink) // nothing printed +sendNext(lettersSink, "B") // prints (2, B) +sendNext(lettersSink, "C") // prints (2, C) & "Completed" + ``` The `zipWith` operator works in the same way, but as an operator.