Я получаю сообщение об ошибке: тип «Подписка» нельзя назначить типу «Наблюдаемый» - PullRequest
0 голосов
/ 02 мая 2018

Здесь у меня есть два метода в моем сервисе. Я новичок в этом, поэтому я не уверен, что делает метод подписки, но все, что я знаю, я не могу построить свой проект без него. Если я прокомментирую эти две функции, то ng serve, затем раскомментируйте, и пусть он обновит изменения, он работает. Но я не могу построить проект. Как мне изменить код, чтобы я не получал эти ошибки и не собирал проект успешно?

public delete(patient: Patient): Observable<Patient> {
    return this.http.delete<Patient>(`${this.deleteOneUrl}/${patient.id}`).subscribe();
}

public addPatient(patient: Patient): Observable<Patient> {  
    return this.http.post<Patient>(this.addOneUrl, patient).subscribe();
}

ОШИБКА в src / app / Patient.service.ts (30,3): ошибка TS2322: Тип «Подписка» не может быть назначен типу «Наблюдаемый». Свойство «_isScalar» отсутствует в типе «Подписка». src / app / Patient.service.ts (38,5): ошибка TS2322: тип «Подписка» нельзя назначить типу «Наблюдаемый».

1 Ответ

0 голосов
/ 02 мая 2018

Вызывая subscribe(), вы получаете объект Subscription вместо Observable (который вы получаете, просто вызывая метод delete / post).

Либо измените тип возврата на Subscription, либо верните Observable (сбросьте .subscribe()).

Обычно вы должны вернуть заметку из вашего сервиса и подписаться позже (в каком-то обработчике кликов или даже в шаблоне). Подписавшись на услугу, вы немедленно инициируете вызов http, в то время как возвращение наблюдаемого является ленивым, и вызов http будет запущен позже, когда вы подпишетесь на него).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...