组件中的方法 -
login(loginForm: NgForm) {
debugger;
let verifyUser;
this.aService.verifyUser(loginForm.value.userName).subscribe(
(data) => {verifyUser = data; },
error => {console.warn(error); },
() => {console.log("Success");}
);
if (verifyUser !== 1) {
this.userNotFound = true;
} else {
sessionStorage.setItem('loginedUser', loginForm.value.userName);
console.log(sessionStorage.getItem('loginedUser'));
}
服务 -
public verifyUser(user: string) {
debugger
let returnValue;
const url = 'https://localhost:44308/api/auth/verifyUserName?username=' + user;
returnValue = this.http.get(url).pipe(
tap(
data => console.log('data' + data),
error => console.error(error)
)
);
return returnValue;
}
我正在服务中的 Tap 方法中在控制台中获取记录的数据,但无法在我订阅的组件中使用它。即使它正在组件中记录成功消息。
最佳答案
这可能是异步性质导致返回未定义吗?
更改为:
public verifyUser(user: string) {
debugger
const url = 'https://localhost:44308/api/auth/verifyUserName?username=' + user;
return this.http.get(url).pipe(
tap(
data => console.log('data' + data),
error => console.error(error)
)
);
}
关于javascript - 无法从 Angular 8 服务获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60733188/