Cant get Наблюдается строковое значение (angular2/typescript)

У меня есть функция, которая получает список объектов, а POST - на api.

Функция возвращает Observable, так как тот, кто когда-либо называет ее, ожидает получить от нее строку, основанную на ответе api.

Если ответ хороший, я хочу вернуть определенную строку, и если это ошибка, я хочу отправить другую строку.

Это моя функция, которая возвращает строку:

public sendUpdate(updatedList: Cars[]): Observable<string> {
return this._myService.updateListNewOrder(updatedList)
  .map(response => "The POST worked successfully") 
  .catch(error => Observable.of("An Error occurred"));
}

Итак, теперь я хочу вызвать эту функцию и получить строку в my component.ts:

messageToDisplay: string;

  public updateList() {
      this._myService.sendUpdate(this.listToUpdate).subscribe(
        res => this.messageToDisplay = res, // onNext
        error => this.messageToDisplay = error // onError
    );
    }

но это не работает... Я не получаю ошибок. Это просто, что messageToDisplay остается undefined.

Кто-нибудь видит проблему?

Спасибо!

Если вам это нужно, это updateListNewOrder (...):

public updateListNewOrder(newOrderedList: string[]): Observable<ServerResponse> {
    let apiURL = "my/api/url";
    return this.http.post(apiURL, JSON.stringify(newOrderedList), { headers: this.defaultHeaders() }
    );
  }

Ответы

Ответ 1

Я воспроизвел вашу логику здесь своими собственными функциями, и все сработало нормально. Ваш метод sendUpdate кажется правильным, а также функция subscribe. Итак, логика RxJS в порядке для меня. Проблема может быть в другом мире кода, который не отображается.

Единственная проблема, о которой я узнал, это тип updateListNewOrder. Он должен быть Observable<Response> вместо Observable<ServerResponse>, если вы используете модуль @angular/http.