Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

207
Vistas
método subscribe().add() llamado con un parámetro que no es del tipo Suscripción

Soy nuevo en Angular (solo estoy aprendiendo) y estoy tratando de entender el siguiente código. En este código (lo simplifiqué de otra aplicación que he visto en Github), el método de subscribe llama al método de add con el parámetro resolve (de Promise), así que tengo algunas preguntas:

  1. ¿El parámetro pasado para agregar método no tiene que ser del tipo 'Suscripción'?
  2. ¿Qué hace el marco con el parámetro de resolve pasado? Pensé que el parámetro debe ser del tipo Suscripción y el marco llama a <Subscription>.unsubscribe() en él.
 const numbers: Observable<number> = interval(5000); const takeFourNumbers = numbers.pipe(take(4)); const promise$ = new Promise<void>(resolve => { // attempt to refresh token on app start up to auto authenticate takeFourNumbers.subscribe() .add(resolve); }).then((result) => { console.log("My result is ", result); });
about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Es un código un poco extraño.

Cada Subscription tiene una función .add( , que se usa para desencadenar algo más en el desmontaje, aquí es cuando finaliza esa suscripción (ya sea porque la transmisión falla, se completa o usted llama a .unsubscribe())

El parámetro que toma .add( puede ser una función (en cuyo caso solo se llama al desmontaje), u otra suscripción, en cuyo caso llamará a .unsubscribe() .

Realmente no se usa demasiado a menos que esté construyendo algo de bajo nivel (como una biblioteca)

En este caso, takeFourNumbers es un flujo que emitirá 4 números en sucesión, 1 segundo entre cada emisión y luego completa. promise$ es una Promesa que cuando takeForNumbers finaliza después de 4 segundos se resolverá con void , porque el desmontaje llamará a la función pasada a .add( , que es resolve, y no da ningún parámetro hasta donde yo sé.

Luego, en esa promesa, llama a .then( para registrar el resultado cuando eso sucede, pero espero que el resultado sea undefined .

about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda