Open jegnux opened 3 years ago
Looks like Github automatically closed #254 when renaming master
branch to main
, so I'm reopening it here π
This is a great way to handle the very common use case of paginated data coming from a server. The basic flatScan
is probably never what you want though, since you run the risk of loosing data if your inputs fire while your requests are in flight, I think that would surprise developers with less experienced with the Rx ecosystem. I have copied the code into one of my projects already and look forward to this being approved.
The basic
flatScan
is probably never what you want though
@danielt1263 How do you think it differs from this same issue but with flatMap? Because I almost never use the default flatMat. Most of the time I use flatMapLatest and sometimes flatMapFirst.
The issue doesn't exist with flatMap
because there is no chance of loosing data in that case like there is with flatScan
.
Hi community!
Here's a new Rx operator I made for a specific use case, but I've seen myself using it for more use cases so I guess it was a good candidate for this repository.
Basically,
flatScan
is ascan
operator that returns anObservable<T>
instead of justT
and flatten the result. It's declined inflatScanFirst
andflatScanLatest
versions that works the same as theirflatMap
counterparts.The most useful use case is when working with paginated content when you want to make a new API request with an "offset" and append your new results to current local results. Something like that:
I know I should have discussed this operator in an issue first but the code was already existing in my project but without unit tests (π±) and working on a PR directly encouraged me to write unit tests for it. If you feel like this operator doesn't fit in this repository I wouldn't mind closing this PR. At least I'll be able to add the tests to my project π
PS: In the second commit I fixed swift lint issues unrelated to the
flatScan
operator. Feel free to focus your review on the first commit 7332d10 π