How does `flatMap()` differ from `map()` in RxJava?
`flatMap()` transforms each item into a new item and flattens the results, while `map()` only transforms each item individually without flattening the result.
Thatâ€™s partially correct. While both transform items, `flatMap()` deals with more complex cases where the transformation results in a stream.
Can you explain how `flatMap()` works when each transformation is asynchronous and involves multiple `Observable` sources?