Angular 5 - 从订阅返回数据无效,returns 字符串 "true" 而不是预期的 JSON 对象
Angular 5 - Returning data from subscribe not working, returns string "true" instead of expected JSON object
我有一个 AuthService,它有一个订阅 http 请求的功能登录和 returns 一个承诺,它解析为我从 http 请求获得的 JSON 数据。
从一个组件调用这个函数,我调用 .then() 到 console.log() 接收到的数据,但是,出乎意料的是,数据 returns 字符串 "true" 而没有别的。
这是我的代码中的相关片段 -
auth.service.ts :
loginAPI(data) {
return new Promise((resolve, reject) => {
this.apiService.apiLogin(data).subscribe(
data => {
console.log(data);
resolve(data);
},
error => {
console.log(error);
reject();
}
)
});
}
login.component.ts :
login() {
if (this.loginForm.valid) {
this.authService.login(this.loginForm.value).then(data => {
if (data =! null) {
console.log("Session starting with data: "+data);
this.sessionService.start(data);
}
});
} else {
// do something
}
}
现在,在 login.component.ts 函数 login() 中,我正在打印数据,但它只在应该打印 JSON 数据的地方打印 "Session starting with data true"。
在函数 loginAPI(data) 中,数据是从另一个名为 apiService 的服务的 HTTP 调用中接收的,其中执行了 http post。
然而,来自 loginAPI(data) 函数的 console.log(data) 正在正确打印 JSON 响应。这意味着数据正在从
正确接收
所以,我哪里错了???
- 尝试将“if (data =!null)”替换为“if(data)”。
- 如果仍然成功,请查看您从后端发送的数据。您可能正在发送标志而不是数据本身。
您在 LoginComponent 中的 if 语句中有错字。你做作而不是比较。
将 loginComponent 中的 if (data =! null) {
替换为 if (data != null) {
。
我有一个 AuthService,它有一个订阅 http 请求的功能登录和 returns 一个承诺,它解析为我从 http 请求获得的 JSON 数据。 从一个组件调用这个函数,我调用 .then() 到 console.log() 接收到的数据,但是,出乎意料的是,数据 returns 字符串 "true" 而没有别的。
这是我的代码中的相关片段 -
auth.service.ts :
loginAPI(data) {
return new Promise((resolve, reject) => {
this.apiService.apiLogin(data).subscribe(
data => {
console.log(data);
resolve(data);
},
error => {
console.log(error);
reject();
}
)
});
}
login.component.ts :
login() {
if (this.loginForm.valid) {
this.authService.login(this.loginForm.value).then(data => {
if (data =! null) {
console.log("Session starting with data: "+data);
this.sessionService.start(data);
}
});
} else {
// do something
}
}
现在,在 login.component.ts 函数 login() 中,我正在打印数据,但它只在应该打印 JSON 数据的地方打印 "Session starting with data true"。
在函数 loginAPI(data) 中,数据是从另一个名为 apiService 的服务的 HTTP 调用中接收的,其中执行了 http post。
然而,来自 loginAPI(data) 函数的 console.log(data) 正在正确打印 JSON 响应。这意味着数据正在从
正确接收所以,我哪里错了???
- 尝试将“if (data =!null)”替换为“if(data)”。
- 如果仍然成功,请查看您从后端发送的数据。您可能正在发送标志而不是数据本身。
您在 LoginComponent 中的 if 语句中有错字。你做作而不是比较。
将 loginComponent 中的 if (data =! null) {
替换为 if (data != null) {
。