- Вам необходимо вернуть наблюдаемое:
return this.http.post(this.deleteUrl, car)....
. В противном случае вы пытаетесь вызвать subscribe
для пустой строки. - Вы также должны указать тип возврата вместо
any
в своих методах, чтобы иметь безопасность типов, что является одним из основных преимуществ использования машинописи. - Ваш метод
delete
должен вернуть наблюдаемое, а не подписку. Верните вызов post
напрямую. - Используйте перегрузки generi c в
HttpClient
для обеспечения безопасности типов.
delete(car: Car): Observable<YourTypeHere> {
return this.http.post<YourTypeHere>(this.deleteUrl, car);
}
import { switchMap } from 'rxjs/operators';
public redirectToDelete = (id: string) => {
this.carService.getId(id)
.pipe(switchMap(r => this.carService.delete(r))) // ← switchMap is handy here, alternatively you could call the next service end point in a subscribe and then have a nested subscribe but this makes for messier code IMO
.subscribe(result => new alert(result));
}
Как примечание: если вы создаете службу RESTful, которая предлагает удаление, я бы порекомендовал вам установить конечную точку, которая использует глагол http DELETE вместо post.