微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular Observable 返回订阅者而不是 JSON 并且字符串显示未定义且没有结果

如何解决Angular Observable 返回订阅者而不是 JSON 并且字符串显示未定义且没有结果

ngOnInit 函数我在 app.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();
  }
}

仅此显示未定义两次await this.api.GetSwapi2().subscribe(j => console.log(j));
其他人无法看到 console.log 中的数据 我只是想在我的 app.component.ts获取数据。

解决方法

发现我的回答有一个小错误。

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) 正在显示结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。