Angular/RxJS  как описаться от пост запроса?

У меня есть простой post запрос, который я использую для создания сообщений. Проблема в том, что функция sendMessage() будет работать абсолютно одинаково при следующий вызовах после первого, отправляя одно и то же сообщение в БД даже уже с другими данными, пока не пересоздам таблицу. Обновление странички ничего не дает, так что проблема видимо в post запросе. Я пытался отписаться от запроса сразу же после его выполнения, но в таком случае сообщение даже не появляется в БД, причины чего мне непонятны. Подскажите, пожалуйста, решение. В ангуляре новичок.

Сервис

C#Выделить код

1
2
3
4
5
6
7
8
9
10
11
12

@Injectable({
  providedIn: 'root',
})
export class MessageService {
  private url = environment.apiUrl + '/message';
 
  constructor(private http: HttpClient) {}
 
  public create(request: CreateMessageRequest): Observable {
    return this.http.post(this.url, request);
  }
}

TS

1
2
3
4
5
6
7

public sendMessage(message: string){
    let request: CreateMessageRequest = {
      Message:  message, 
    }
    const req = this.messageService.create(request).subscribe();
    //req.unsubscribe(); если добавить, сообщение не пройдет в бд
  }

HTML

HTML5Выделить код

1
2
3
4


      <textarea #refVariable [value]="test" type="text" placeholder="Write message"></textarea>
      <button class="buttonTwo" type="submit" (click)="sendMessage(refVariable.value)"></button>
  

P.S.: был также попробован такой код, но с идентичным результатом.

TS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

export class DialogsComponent implements OnInit, OnDestroy {
constructor(private messageService: MessageService){}
 
private unsubscribe$ = new Subject();
ngOnDestroy(): void {
    this.unsubscribe$.next();
    this.unsubscribe$.complete();
  }
 
public sendMessage(message: string){
    let request: CreateMessageRequest = {
      Message: message,
    }
    this.messageService.create(request)
    .pipe(takeUntil(this.unsubscribe$))
    .subscribe();
  }
}

Еще один нерабочий вариант

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

export class DialogsComponent implements OnInit, OnDestroy {
constructor(private messageService: MessageService){}
alive: boolean = true
ngOnDestroy(): void {
    this.alive = false;
  }
 
public sendMessage(message: string){
    let request: CreateMessageRequest = { 
      Message: message,
    }
    this.alive = true;
    this.messageService.create(request)
    .pipe(takeWhile(() => this.alive))
    .subscribe();
  }
}