> For the complete documentation index, see [llms.txt](https://www.rxjs.es/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.rxjs.es/api/indice/subscriber.md).

# Subscriber

## Implementa el interfaz Observador y extiende la clase Suscripción. Mientras el Observador es la API pública para consumir los valores de un Observable, todos los Observadores se convierten en Suscriptores, para poder proporcionar capacidades propias de la Suscripción, tal y como `unsubscribe`. `Subscriber` es un tipo común en RxJS y es crucial para implementar operadores, pero raramente se utiliza como API pública

```typescript
class Subscriber<T> extends Subscription implements Observer {
static create<T>(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber<T>
constructor(destinationOrNext?: NextObserver<any> | ErrorObserver<any> | CompletionObserver<any> | ((value: T) => void), error?: (e?: any) => void, complete?: () => void)
protected isStopped: boolean
protected destination: PartialObserver<any> | Subscriber<any>
next(value?: T): void
error(err?: any): void
complete(): void
unsubscribe(): void
protected _next(value: T): void
protected _error(err: any): void
protected _complete(): void
_unsubscribeAndRecycle(): Subscriber<T>

// Heredado de index/Subscription
static EMPTY: Subscription
constructor(unsubscribe?: () => void)
closed: [object Object]
unsubscribe(): void
add(teardown: TeardownLogic): Subscription
remove(subscription: Subscription): void
}
```

## Métodos Estáticos

| create()                                                                                                                                                                                                                                                                                                        |                                                                                      |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Una factoría estática para un Suscriptor, dada una (posiblemente parcial) definición de un Observador.                                                                                                                                                                                                          |                                                                                      |
| <h4>Firma</h4><p><code>static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>Subscriber</code>: Un Suscriptor que envuelve el Observador (parcialmente definido) representado por los argumentos dados.</p> |                                                                                      |
| next                                                                                                                                                                                                                                                                                                            | Opcional. El valor por defecto es `undefined`. La *callback* next de un Observador.  |
| error                                                                                                                                                                                                                                                                                                           | Opcional. El valor por defecto es `undefined`. La *callback* error de un Observador. |
| complete                                                                                                                                                                                                                                                                                                        | Opcional. El valor por defecto es `undefined`. La *callback* de un Observador.       |

| next     | Opcional. El valor por defecto es `undefined`. La *callback* next de un Observador.  |
| -------- | ------------------------------------------------------------------------------------ |
| error    | Opcional. El valor por defecto es `undefined`. La *callback* error de un Observador. |
| complete | Opcional. El valor por defecto es `undefined`. La *callback* de un Observador.       |

## Constructor

| constructor()                                                       |                                                                                                                   |                    |                                                                                                       |   |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------- | - |
| <h4>Firma</h4><p><code>constructor(destinationOrNext?: NextObserver | ErrorObserver                                                                                                     | CompletionObserver | ((value: T) => void), error?: (e?: any) => void, complete?: () => void)</code></p><h4>Parámetros</h4> |   |
| destinationOrNext                                                   | Opcional. El valor por defecto es `undefined`. Un Observador parcialmente definido o una función *callback* next. |                    |                                                                                                       |   |
| error                                                               | Opcional. El valor por defecto es `undefined`. La *callback* error de un Observador.                              |                    |                                                                                                       |   |
| complete                                                            | Opcional. El valor por defecto es `undefined`. La *callback* complete de un Observador.                           |                    |                                                                                                       |   |

| destinationOrNext | Opcional. El valor por defecto es `undefined`. Un Observador parcialmente definido o una función *callback* next. |
| ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| error             | Opcional. El valor por defecto es `undefined`. La *callback* error de un Observador.                              |
| complete          | Opcional. El valor por defecto es `undefined`. La *callback* complete de un Observador.                           |

## Propiedades

| Propiedad   | Tipo                            | Descripción |
| ----------- | ------------------------------- | ----------- |
| isStopped   | `boolean`                       |             |
| destination | `PartialObserver \| Subscriber` |             |

## Métodos

| next()                                                                                                                                                  |                                                               |
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| La *callback* Observador para recibir notificaciones de tipo next del Observable, con un valor. El Observable puede llamar a este método 0 o más veces. |                                                               |
| <h4>Firma</h4><p><code>next(value?: T): void</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>void</code>:</p>                                     |                                                               |
| value                                                                                                                                                   | Opcional. El valor por defecto es `undefined`. El valor next. |

| value | Opcional. El valor por defecto es `undefined`. El valor next. |
| ----- | ------------------------------------------------------------- |

| error()                                                                                                                                                                                    |                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| La *callback* Observador para recibir notificaciones de tipo error del Observable, con un error adjunto. Notifica al Observador que el Observable ha experimentado una condición de error. |                                                                    |
| <h4>Firma</h4><p><code>error(err?: any): void</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>void</code>:</p>                                                                       |                                                                    |
| err                                                                                                                                                                                        | Opcional. El valor por defecto es `undefined`. La excepción error. |

| err | Opcional. El valor por defecto es `undefined`. La excepción error. |
| --- | ------------------------------------------------------------------ |

| complete()                                                                                                                                                                              |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| La *callback* Observador para recibir una notificación sin valor de tipo complete del Observable. Notifica al Observador que el Observable ha terminado de emitir notificaciones *push* |
| <h4>Firma</h4><p><code>complete(): void</code></p><h4>Parámetros</h4><p>No recibe ningún parámetro.</p><h4>Retorna</h4><p><code>void</code>:</p>                                        |

| unsubscribe()                                                                                                                                      |
| -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <h4>Firma</h4><p><code>unsubscribe(): void</code></p><h4>Parámetros</h4><p>No recibe ningún parámetro.</p><h4>Retorna</h4><p><code>void</code></p> |

| \_next()                                                                                                                      |            |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------- |
| <h4>Firma</h4><p><code>protected \_next(value: T): void</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>void</code></p> |            |
| value                                                                                                                         | Tipo: `T`. |

| value | Tipo: `T`. |
| ----- | ---------- |

| \_error()                                                                                                                      |              |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------ |
| <h4>Firma</h4><p><code>protected \_error(err: any): void</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>void</code></p> |              |
| err                                                                                                                            | Tipo: `any`. |

| err | Tipo: `any`. |
| --- | ------------ |

| \_complete()                                                                                                                                                |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <h4>Firma</h4><p><code>protected \_complete(): void</code></p><h4>Parámetros</h4><p>No recibe ningún parámetro.</p><h4>Retorna</h4><p><code>void</code></p> |

| \_unsubscribeAndRecycle()                                                                                                                                                  |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <h4>Firma</h4><p><code>\_unsubscribeAndRecycle(): Subscriber</code></p><h4>Parámetros</h4><p>No recibe ningún parámetro.</p><h4>Retorna</h4><p><code>Subscriber</code></p> |

## Recursos adicionales

[![Source code](https://github.com/puntotech/rxjs-docu/blob/master/doc/api/index/assets/icons/source-code.png)](https://github.com/ReactiveX/rxjs/blob/6.5.5/src/internal/Subscriber.ts#L8-L162)

[Documentación oficial en inglés](https://rxjs.dev/api/index/class/Subscriber)
