# Notification

## Notificación

### Representa un evento o valor *push* que puede emitir un Observable. Esta clase es especialmente útil para los operadores que gestionan notificaciones, como materialize, dematerialize, observeOn y demás. Además de crear una capa sobre el valor emitido, también lo anota con metadatos de, por ejemplo, qué tipo de mensaje push es (next, error o complete)

```typescript
class Notification<T> {
  static createNext<T>(value: T): Notification<T>;
  static createError<T>(err?: any): Notification<T>;
  static createComplete(): Notification<any>;
  constructor(kind: "N" | "E" | "C", value?: T, error?: any);
  hasValue: boolean;
  kind: "N" | "E" | "C";
  value?: T;
  error?: any;
  observe(observer: PartialObserver<T>): any;
  do(
    next: (value: T) => void,
    error?: (err: any) => void,
    complete?: () => void
  ): any;
  accept(
    nextOrObserver:
      | NextObserver<T>
      | ErrorObserver<T>
      | CompletionObserver<T>
      | ((value: T) => void),
    error?: (err: any) => void,
    complete?: () => void
  );
  toObservable(): Observable<T>;
}
```

## Métodos Estáticos

| createNext()                                                                                                                                                                                        |                  |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| Un atajo para crear una instancia de una Notificación de tipo `next` a partir de un valor dado.                                                                                                     |                  |
| <h4>Firma</h4><p><code>static createNext(value: T): Notification</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>Notification</code>: La Notificación "next" que representa al argumento.</p> |                  |
| value                                                                                                                                                                                               | El valor `next`. |

| createError()                                                                                                                                                                                          |                                                                     |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
| Un atajo para crear una instancia de una Notificación de tipo `error` a partir de un valor dado.                                                                                                       |                                                                     |
| <h4>Firma</h4><p><code>static createError(err?: any): Notification</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>Notification</code>: La Notificación "error" que representa al argumento.</p> |                                                                     |
| err                                                                                                                                                                                                    | Opcional. El valor por defecto es `undefined`. El error de `error`. |

| createComplete()                                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Un atajo para crear una instancia de una Notificación de tipo `complete`.                                                                                                                                                      |
| <h4>Firma</h4><p><code>static createComplete(): Notification</code></p><h4>Parámetros</h4><p>No recibe ningún parámetro.</p><h4>Retorna</h4><p><code>Notification</code>: La Notificación "complete", que carece de valor.</p> |

### Constructor

| constructor()                                |                                                             |                                                            |   |
| -------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------- | - |
| <h4>Firma</h4><p><code>constructor(kind: "N" | "E"                                                         | "C", value?: T, error?: any)</code></p><h4>Parámetros</h4> |   |
| kind                                         | Tipo: `"N" \| "E" \| "C"`.                                  |                                                            |   |
| value                                        | Opcional. El valor por defecto es `undefined`. Tipo: `T`.   |                                                            |   |
| error                                        | Opcional. El valor por defecto es `undefined`. Tipo: `any`. |                                                            |   |

### Propiedades

| Propiedad | Tipo              | Descripción                  |
| --------- | ----------------- | ---------------------------- |
| hasValue  | boolean           |                              |
| kind      | 'N' \| 'E' \| 'C' | Declarado en el constructor. |
| value     | T                 | Declarado en el constructor. |
| error     | any               | Declarado en el constructor. |

### Métodos

| observe()                                                                                                                            |                          |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
| Envía al observador proporcionado el valor englobado por esta Notificación.                                                          |                          |
| <h4>Firma</h4><p><code>observe(observer: PartialObserver): any</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>any:</code></p> |                          |
| observer                                                                                                                             | Tipo: `PartialObserver`. |

| do()                                                                                                                                                                              |                                                                                          |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Dada una callback de un Observador, envía el valor representado por la Notificación actual a la callback correspondiente.                                                         |                                                                                          |
| <h4>Firma</h4><p><code>do(next: (value: T) => void, error?: (err: any) => void, complete?: () => void): any</code></p><h4>Parámetros</h4><h4>Retorna</h4><p><code>any:</code></p> |                                                                                          |
| next                                                                                                                                                                              | Una callback `next` de un Observador.                                                    |
| error                                                                                                                                                                             | Una callback `error` de un Observador. Opcional. El valor por defecto es `undefined`.    |
| complete                                                                                                                                                                          | Una callback `complete` de un Observador. Opcional. El valor por defecto es `undefined`. |

| accept()                                                                                                            |                                                                                          |                    |                                                                                                        |   |
| ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------ | - |
| Recibe un Observador o sus funciones callback individuales y llama al método observe u otro método correspondiente. |                                                                                          |                    |                                                                                                        |   |
| <h4>Firma</h4><p><code>accept(nextOrObserver: NextObserver                                                          | ErrorObserver                                                                            | CompletionObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void)</code></p><h4>Parámetros</h4> |   |
| nextOrObserver                                                                                                      | Un Observador o una callback `next`                                                      |                    |                                                                                                        |   |
| error                                                                                                               | Una callback `error` de un Observador. Opcional. El valor por defecto es `undefined`.    |                    |                                                                                                        |   |
| complete                                                                                                            | Una callback `complete` de un Observador. Opcional. El valor por defecto es `undefined`. |                    |                                                                                                        |   |

| toObservable()                                                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Retorna un Observable simple que emite la notificación representada por esta instancia de Notificación.                                                          |
| <h4>Firma</h4><p><code>toObservable(): Observable</code></p><h4>Parámetros</h4><p>No recibe ningún parámetro.</p><h4>Retorna</h4><p><code>Observable:</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/Notification.ts#L17-L148)

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