javascript - 无法从 Angular 8 服务获取数据

标签 javascript angular

组件中的方法 -

        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/

相关文章:

angular - 如何在 Angular 的子组件实例中实现单独的功能?

node.js - 部署到 Heroku 错误 : Cannot find module '/app/server.js'

javascript - 如何使用 javascript 检索隐藏字段值?

javascript - .替换为匹配的模式+1(整数)

Angular2 拖放目标

angular - 没有导出成员 'MdCardModule' 和 'MdTooltipModule'

angular - 带有 API 数据的 Highcharts Angular

javascript - 用于选择所有文本节点的 XPath

javascript - 下拉 | Material 设计 |两个元素 |重叠

javascript - 如何使用jquery以不区分大小写的方式获取URL参数