Comments (7)
@iandundas I think you can also use combineLatest
combineLatest(ifSequence, thenSequence, elseSequence) { condition, thenElement, elseElement in
if (condition) {
return thenElement
}
else {
return elseElement
}
}
If you really really need if:then:else
, then you can just create your own operator that wraps combineLatest
.
In that way you an create if:then:elseif:elseif ....:else
or what ever imperative operator do you need applied easily :)
Hope this helps.
from rxswift.
If I understand you correctly then something like what I have on line 57 of this file should do it: https://github.com/dtartaglia/MVVMSwiftSample/blob/feature/make_reactive/MVVM/DetailViewController.swift
In short I think sampleLatest
sounds like what you need. You might have to combine the parameter of sampleLatest
with a filter.
from rxswift.
problem magically rearranges in head, combineLatest solution condenses into view
... okay that actually could work! Thanks both, I'll post back if still stuck. 👍🏻
from rxswift.
So, (if signal A's events are allowed through only if signal B evaluates to true, described above), what would you return if you didn't want anything to be passed to subscribers of combineLatest
? i.e. I'm looking for an empty signal that just gets dropped, somehow.
i.e.:
let automaticUpdatesShouldBeEnabled: Observable<Bool>
let annotations: Observable<[PointAnnotation]>
combineLatest(automaticUpdatesShouldBeEnabled, annotations, {
enabled, annotations in
if enabled{ // cool, let the annotations through
return annotations
}
else{ // we want to stop here, and subscribers should receive nothing.
// return ??
}
})
from rxswift.
I guess one way would be to just make annotations
an optional (Observable<[PointAnnotation]?>
) and then just return nil - and then add a filter
afterwards to filter these out.
But is there a better way?
from rxswift.
Hi @iandundas
I think what you need is a combo of combineLatest
and flatMap
. Something like:
let automaticUpdatesShouldBeEnabled: Observable<Bool>
let annotations: Observable<[PointAnnotation]>
combineLatest(automaticUpdatesShouldBeEnabled, annotations, { ($0, $1) })
>- flatMap { enabled, annotations in
if enabled{ // cool, let the annotations through
return just(annotations)
}
else{ // we want to stop here, and subscribers should receive nothing.
return empty()
}
}
from rxswift.
That's perfect for what I need - thanks so much :)
from rxswift.
Related Issues (20)
- Crash app Xcode 15 HOT 3
- Crash: value tried to resume its continuation more than once HOT 2
- Any support/plan of Privacy Manifest? HOT 119
- Deprecated code warnings in playground Filtering_and_Conditional_Operators.xcplaygroundpage HOT 1
- -[RxCocoa.RxTextViewDelegateProxy text]: unrecognized selector sent to instance 0x28132bdb0 HOT 2
- asSingle -> Sequence contains more than one element. HOT 5
- Update
- Cocoapods trunk push verification fails on pods dependent on RxSwift using Xcode 15+ HOT 4
- ConnectableObservable cannot connect once it was disposed HOT 2
- Why is the https://api.snapkit.com initialized before FinishLaunchingWithOptions? HOT 1
- drive's onNext closure should be main actor isolated HOT 1
- No available version for github "ReactiveX/RxSwift" satisfies the requirement: == 6.6.0 HOT 4
- Using in a React Native Native Module crashes with outlined init with copy of Disposable HOT 7
- Proposal, add overlapping buffers. HOT 2
- withLatestFrom *only* takes immediate values it does not wait for deferred events from the `second` observable HOT 10
- `asSingle()` to automatically run `take(1)` beforehand HOT 17
- need add PrivacyInfo.xcprivacy HOT 1
- Need add PrivacyInfo.xcprivacy after 2024.5.1 HOT 1
- `bind` function may cause ambiguity HOT 5
- Add support for visionOS in Podspec
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rxswift.