angular - Egenskapen 'subscribe' finns inte på typen 'Subscription'


Här använder jag GET-metoden för att hämta listan över ansökta jobb. Denna kod är från appliedJobsPage

this.getjobs.getAppliedjobList().subscribe(data => {
      this.appliedjobs = data;
    })

Detta är min leverantörssida getJobs

getAppliedjobList() {
    let headers = new Headers();
    headers.append('Content-Type','application/json');
    return this.http.get('http://localhost:3000/api/appliedjobs',{headers: headers})
    .map(res => res.json())
    .subscribe(data => {
      this.jobslist = data;
    });
  } 

Jag får ett fel som

Property 'subscribe' does not exist on type 'Subscription'. Did you mean 'unsubscribe'?

Svar #1

Du får detta fel eftersom du redan har prenumererat på observabeln.

map(res => res.json())
    .subscribe(data => {
      this.jobslist = data;
    });

Om du använder Angular version 5 eller senare behöver du inte detta map(res => res.json()). Hur som helst, du behöver ta bort prenumerationen på observablen i din tjänst så att du kan prenumerera på observablen i din komponent. Ta bort följande i din tjänst:

.subscribe(data => {
          this.jobslist = data;
        });