Sellar cada petición con la config más reciente
Requisito
Una app dispara cuatro peticiones a la API mientras, en segundo
plano, los despliegues suben la versión de config
v1 → v2 → v3 en desplazamientos fijos. Cada petición
debe sellarse con la versión de config que estaba vigente
cuando la petición se disparó — y un cambio de config por sí
solo no debe emitir nada. Imprime las cuatro peticiones selladas.
Ambos calendarios están simulados en el código; las dos versiones
deben imprimir las líneas que aparecen bajo Salida esperada.
Salida esperada
GET /orders (config v1) GET /stock (config v2) GET /prices (config v2) GET /refunds (config v3)
Lado a lado
RxDart
FxDart
Por qué difieren
No difieren. Este es el hermano asimétrico de
combineLatest — un stream dirige, el otro solo se
consulta — y ambos paneles lo nombran de
la misma manera: withLatestFrom emite por petición,
sellada con la config más fresca vista hasta ahora, y guarda
silencio cuando solo cambia la config. Sin andamiaje de fusión
etiquetada y sin pliegue con scan: las dos cadenas son
idénticas operador por operador.
La capa de eventos de fxdart absorbe el enfoque Rx para el
lado push: fxEvents es una cadena envoltorio fina sobre
Streams llanos — nunca una extensión, así que no
colisiona con nada, rxdart incluido. El catálogo de operadores de
RxDart sigue siendo mucho más amplio; fxdart mantiene pequeño el
núcleo de eventos y cruza al pipeline pull tipado con
.pull() cuando el procesamiento por valor crece. Para
sellar un stream vivo con el último valor de otro, los dos lados son
equivalentes: empate.
Benchmark
Sin benchmark para este ejemplo. Este operador se define por el tiempo transcurrido, no por el trabajo realizado: ambos lados esperan las mismas ventanas, así que una barra estaría midiendo los temporizadores de Dart y no las librerías. Acortar las ventanas tampoco sirve — cuántos valores produce una ráfaga pasaría a depender de lo rápida que sea la máquina, y ya no se podría comprobar que ambos lados dan un resultado idéntico. Por eso los ejemplos construidos sobre operadores de temporización se dejan sin medir; los que solo usan retardos para simular E/S sí se miden, con esos retardos puestos a cero.