首页 > 解决方案 > Angular Observable 返回订阅者而不是 JSON 并且字符串显示未定义且没有结果

问题描述

我在 as 中定义的ngOnInitapp.component.ts函数。

async ngOnInit(){    
    await this.api.GetSwapi()
    await this.api.mySubject.subscribe(data => console.log); //Not getting data in console log
    await this.api.mySubject.subscribe((data: any) => console.log); //Not getting data in console log
    console.log('---------------------123123123-----------------------');//working
    await this.api.GetSwapi2().subscribe(j => console.log(j)); //Getting undefined two times
    await this.api.testSubject.subscribe(data => console.log); //Not getting data in console log
}

这是我的api.service.ts

export class ApiService {  
  constructor(private http: HttpClient) { }

  mySubject = new Subject();
  testSubject = new Subject<string>();

  GetSwapi(){ //FUNCTION 1
    this.http.get<any>('https://swapi.dev/api/people/')    
    .subscribe(data => {
        console.log(data.results);
        this.mySubject.next(data.result);        
    });
  }

  GetSwapi2(): Observable<any> { //FUNCTION 2
    this.http.get<any>('https://swapi.dev/api/people/')
    .subscribe(data => {        
        this.mySubject.next(data.result);        
    });
    this.testSubject.next('woooow');
    return this.mySubject.asObservable();
  }
}

只有这个显示undefined两次await this.api.GetSwapi2().subscribe(j => console.log(j));
其他人看不到console.log 我只是想在我的app.component.ts.

标签: angulartypescriptrxjsrxjs6angular12

解决方案


发现我的答案是一个小错误。

GetSwapi(){ //FUNCTION 1
    this.http.get<any>('https://swapi.dev/api/people/')    
    .subscribe(data => {
        console.log(data.results);
        this.mySubject.next(data.result);        
    });
  }

问题在下一个..this.mySubject.next(data.result);results不像显示的结果result那样。console.log(data.results)


推荐阅读