its basically the same as switchMap but instead of waiting for an emission to happen, it will just wait for the primary observable to complete(so it wont matter whether its empty or not).
e.g., switchMap wont work on the code below since it needs at least 1 emission.
but the same code works on RX.Net's ContinueWith()
https://github.com/dotnet/reactive/blob/main/Rx.NET/Source/src/System.Reactive/Threading/Tasks/TaskObservableExtensions.cs
EMPTY.pipe(
switchMap(() => secondaryObservable$)
)