# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.rxjs.es/api/indice/subscriber.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
