在 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 中调用它
在我的 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 中调用它