在 Angular 中调用 API 时数据丢失 4

data loss when calling API in Angular 4

在我的 angular 4 应用程序中,我在 ngOnInit 中有两个 API 调用,我只是试图将第一个 API 调用的 returns 数据传递给第二个.

但是我在API方法中收到了"Undefined"。

代码:

ngOnInit() {

        this.http.get('https://api.ipify.org/?format=json').subscribe(
            data => {
                this.ip_Address=data['ip'],
                console.log(this.ip_Address),   
                error => console.error(error)
            });

            this.http.get(`http://localhost:xyz/api/data/INSERT_USER_SESSION/?IP_Address=${this.ip_Address}&Time=${this.date_and_time}&state=${this.session_Begin_Status}`)
            .subscribe(data => this.res = data['']);
}

我在这里将 IP 地址传递给第二个 API 调用,但值显示 "undefined"。但是我在控制台拿到了IP

请告诉我哪里错了

问题是当您超出订阅方法时,来自该服务的数据将是未定义的。当它不是未定义时,您将在控制台中看到它,但在离开服务订阅后,它将恢复为未定义。考虑使用 switchmap 或类似的东西。我在这个 中也遇到了这个问题。您也可以在第一次服务中进行第二次服务。

如果响应为 200 并且数据主体有数据,则可以使用数据的响应,而不是解析数据,如果第一个服务有响应数据,则调用第二个服务,这样就不会出现此错误,另一种方法是制作函数并在你的 onInIt 中调用它