我想在使用 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)})
}
});
}
非常感谢任何帮助。
是的,当然这是一个好方法,因为 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)})
}
我认为@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)})
}
更好的方法是使用 concatMap