# Subscribe

Dans l'exemple ci-dessous nous allons créer un observable à l'aide de la fonction `interval` qui produit une **valeur auto-incrémentée de façon régulière**.&#x20;

```typescript
import { interval } from 'rxjs';

const data$ = interval(1000);
```

Tant qu'on ne s'inscrit pas à l'"observable", il ne se passe rien car cet observable est "lazy“.

{% hint style="success" %}
La convention de nommage est de suffixer les "observables" avec `$`.
{% endhint %}

## `Observable.subscribe`

Le point commun entre tous les "observables" est la méthode `subscribe` qui permet de **souscrire à un `Observable`** et être **notifié des nouvelles valeurs**, des **erreurs** ou de la **fin du "stream"**.

```typescript
import { interval } from 'rxjs';
​
const data$ = interval(1000);

data$.subscribe(value => console.log(value));
```

![Résultat du \`subscribe\`](https://4009647861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L9vDDYxu6nH7FVBtFFS%2F-LC_FD2uWb63Q44-9z3O%2F-LC_GP2XkiHBUp6NL56F%2Fobservable-subscribe.gif?alt=media\&token=c90a58a0-bae5-4b22-8a4f-91d5a5ac2f80)

Nous pouvons ensuite ajouter les "callbacks" de capture d'"erreur" ou de fin du "stream" en passant un objet à la méthode subscribe avec les trois callbacks suivantes : `next`, `error` et `complete`.

```typescript
data$.subscribe({
    next: value => console.log(value),
    error: err => console.error(err),
    complete: () => console.log('DONE!')
});
```
