【问题标题】:calling GET request after POST request in Angular在 Angular 中的 POST 请求后调用 GET 请求
【发布时间】:2018-11-29 04:16:00
【问题描述】:

我想在使用 Angular 的 POST 请求之后调用发出 GET 请求。

这是我到目前为止的代码,这是好的解决方案吗?

   update(){
     this.http.post<any>("/ssservice", "products=" + body, options)
       .suscribe({
         complete: () => {
           this.http.get<Product[]>("/ssservice")
             .suscribe({
               (data: Product[]) => products.push(...data),
               err => console.log(err)})
         }
       });
    }

非常感谢任何帮助。

【问题讨论】:

  • 是的,这是一个很好的方法,但为了更简洁的代码,您可以调用另一个函数,从成功的发布请求中获取请求代码。
  • @PardeepJain 感谢您的回复。请提供详细的答案,并确保我将其标记为已回答并投票。提前致谢
  • 添加了答案,似乎由于网络问题,答案已保存在草稿中,之前有人回答过

标签: javascript angular asynchronous post get


【解决方案1】:

是的,当然这是一个好方法,因为 http 是异步调用,所以在这种情况下,最好在 http 的成功块中调用任何函数/代码。

但请尽可能多地破坏您的代码。 在您的用例中,您可以像这样调用另一个函数并在其中调用 get 请求 -

update(){
     this.http.post<any>("/ssservice", "products=" + body, options)
       .suscribe(
         complete: () => {
           this.anotherGetReuqest();
         });
    }

anotherGetReuqest() {
this.http.get<Product[]>("/ssservice")
   .subscribe({(data: Product[]) => products.push(...data),
    err => console.log(err)})
}

【讨论】:

  • 与其他答案相同。我认为更好的方法是返回 observable 而不是 suscribed 函数。你怎么看?
  • 订阅功能是什么意思?在哪里?你能再解释一下吗?
  • 我不会返回http.get().suscribe(),而是返回http.get()然后在update()函数中调用suscribe,这样我可以以适当的方式调用另一个第三个函数。
  • 哦,您想在update() 方法中使用/返回获取请求的响应,那么可以。我想你只是想独立调用另一个函数。
  • 是的,这是我的问题,但我想要您的建议。在update() 函数中返回Observable 似乎是最佳实践,你怎么看?顺便说一句,即使是发布请求。这可以分成 2 个不同的函数返回 observable 至少我已经这样做了
【解决方案2】:

我认为@PardeepJain 在告诉我们

update(){
  this.http.post<any>("/ssservice", "products=" + body, options)
    .suscribe({
      complete: () => {
        this.getProduct()
      },
    });
}

getProduct () {
  this.http.get<Product[]>("/ssservice")
    .subscribe({
      (data: Product[]) => products.push(...data),
       err => console.log(err)})
}

【讨论】:

  • 代码中的一个问题是我无法在getProduct() 之后调用另一个函数,一种解决方案是返回Observable 而不是订阅函数
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2021-01-26
  • 2018-04-22
  • 2014-07-24
  • 2016-06-05
相关资源
最近更新 更多