I'm wondering about error handling from observable streams. I read article about using rxjs and async pipe in Angular. It was written here we should avoid to use subscribe operator and try to replace it with async pipe. But now when I try to write some post/put request we have to subscribe so i'm little bit confused where i should modify my component state.

```
submitForm() {
  this.restService.add(this.user.id, this.form.value)
    .pipe(
      tap(() => { this.isAdded = true }),
      catchError((error: HttpErrorResponse) => {
          this.responseMsg = 'Something went wrong'
          return throwError('notFound')
        }
      )
    ).subscribe();
  }

```

Or should i handle this in subscribe 

```
submitForm() {
      this.restService.add(this.user.id, this.form.value)
        .pipe(
          tap(() => { this.isAdded = true }),
        ).subscribe( 
            () => {}, 
            () => {this.responseMsg = 'Something went wrong'}
       );
 }

```

Which solution is better?