Tengo esta pequeña paz de código:
var s2 = of(6, 16, 26).pipe(map(v1=>of(5, 15, 25).pipe(map(v2=>[v2,v1]))), combineLatestAll()); s2.subscribe(console.log)Produce la salida a continuación: entiendo que se genera la tercera salida (cuando comienza la primera transmisión, la segunda finaliza, por lo que siempre comienza con 25, supongo) pero no entiendo por qué se generan las dos primeras salidas.
[25, 6] [25, 16] [5, 26] [25, 6] [25, 16] [15, 26] [25, 6] [25, 16] [25, 26]Esta es una línea de tiempo de lo que sucede:
O1 [5,6] [15,6] [25,6] O2 [5,16] [15,16] [25,16] O3 [5,26] [15,26] [25,26] CLA latest O1 -> [25,6] [25,6] [25,6] latest O2 -> [25,16] [25,16] [25,16] latest O3 -> [5,26] [15,26] [25,26] combineLatestAll suscribe a todos los observables. Cuando te suscribes a una transmisión como of(5, 15, 25) , se completa antes de que suceda nada más. Entonces, el observable 1 se completa, el observable 2 se completa y los valores emitidos por el observable 3 se combinan cada uno con los últimos valores de O1 y O2.