Nunca usé RxJS, pero ahora estoy trabajando en un proyecto que lo usa.
Me disculpo si mi pregunta no es tan clara, no dude en solicitar aclaraciones/ediciones.
Tengo un Observable que (en caso de que no haya errores) se resuelve muy rápido, pero hay un tiempo de timeout por si acaso...
Me di cuenta de que mi proceso de Node.js no sale hasta que el tiempo de espera no haya expirado...
Si comento este fragmento de código:
observable.pipe( timeout(3* 60 * 1000), catchError(() => throwError(() => new Error("timeout"))) );el proceso de Node.js sale sin ningún problema.
¿Hay alguna forma de eliminar la referencia de un RxJS timeout unref
Probé un ejemplo muy simple basado en el documento RXJS:
import { of } from 'rxjs'; import { concatMap, timeout, catchError, delay } from 'rxjs/operators'; // simulate request function makeRequest(timeToDelay) { return of('Request Complete!').pipe(delay(timeToDelay)); } of(200) .pipe( concatMap(duration => makeRequest(duration).pipe( timeout(10500), catchError(() => throwError(() => new Error("timeout"))) //catchError(error => of(`Request timed out after: ${duration}`)) ) ) ) .subscribe(val => console.log(val));Estoy en Windows 10, en el administrador de tareas, el proceso aparece y desaparece sin esperar el tiempo de espera (10500ms).
Sin embargo, al cerrar git bash tengo:
Pero solo si inicié mi proceso como ese node index.js & ( & al final para desconectarme de la terminal).
No estoy seguro de las implicaciones de que la terminal me diga que el proceso aún se está ejecutando, cuando el administrador de tareas dice que no hay un proceso de nodo en ejecución.