【问题标题】:Subscription response data is ignored Angular 5订阅响应数据被忽略Angular 5
【发布时间】:2018-08-23 14:39:21
【问题描述】:

我正在发出一个 HttpClient 获取请求,并将响应返回给我的组件。我似乎无法对响应做任何事情。

这是我调用服务的组件方法:

  onSubmit() {
   this.userService.updateProfile(this.userForm.value)
     .subscribe(response => {
       console.log(response); //This does not log to the console
     });
  }

这是我的服务:

  updateProfile(user: User) {
    return this.httpClient.put<User>('/updateUser', user)
      .map(response => {
        console.log(response); //This does not log to the console
        return response;
    });
  }

我无法在我的服务或组件中将响应记录到控制台。我没有任何编译错误或任何表明存在问题的东西。

【问题讨论】:

  • 欢迎堆栈溢出!有没有可能在看跌期权时你没有得到任何东西来记录?许多put 操作不会像getpost 那样返回数据。
  • 感谢您的帮助。我刚刚测试了发布请求,没有运气。我无法执行获取请求,因为我在正文中传递了一个对象。
  • 您使用的是来自@angular/common/httpHttpClientModule 吗?

标签: angular rxjs httpclient subscription


【解决方案1】:

为我的愚蠢道歉。问题是我的服务器没有发送响应。我确定是这样,并且误解了代码。现在一切正常。

【讨论】:

  • 很高兴您解决了您的问题。您应该删除您的问题,因为它不是问题。
  • 你能把它改成评论吗?
【解决方案2】:

能否请您发布表单和组件代码的 HTML 代码? 另外,你的代码应该是这样的:

 onSubmit() {
   this.userService.updateProfile(this.userForm.value)
     .subscribe(response => {
       this.response2 = response; //You need to assign it to something.
       console.log(response2); 
     });
  }

只需根据您需要的类型定义 response2 即可。 updateProfil 函数也是如此,您需要将其返回给某个对象。

【讨论】:

  • 我确实将响应分配给了一个对象,但为了简化它,我把它从我的问题中删除了。我知道“onSubmit()”被触发是因为我的数据库中的用户确实得到了更新,但我需要能够使用更新的用户对象从 UI 中反映这一点。我只是不明白为什么我没有在控制台中记录任何响应时间。
猜你喜欢
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 2018-09-20
  • 2018-07-12
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 2023-02-06
相关资源
最近更新 更多