angular http更新,而不调用subscribe



我的http服务中有这个方法:

update(field: Field) {
return this.http.put<Field>(`${environment.apiUrl}/fields`, field).pipe(
map((response: any) => {
this.toastr.success(response.message);
return response.model;
}),
);
}

似乎为了从组件调用它,我必须这样订阅它:

this.fieldService.update(currentField).subscribe(field => console.log(field));

我更喜欢这样调用它:

this.fieldService.update(currentField);

作为奖励,我希望两者都能。这可能吗?

如果我能像这样调用它,我会更喜欢它:

this.fieldService.update(currentField);

然后从服务中调用subscribe((。但这是一个糟糕的想法,因为您通常希望能够知道更新是否成功,以及何时成功,以便链接其他操作,例如导航到显示刚刚更新的值的页面。

作为奖励,我希望两者都能。这可能吗?

否,除非您定义了两个不同的方法,或者除非您将sme参数传递给方法,告诉它是否订阅。

实际上,我假设您正在尝试为REST请求实现一个通用的toast。如果是这样的话,你可能会更乐意改变做这件事的方式

个人将为此实现一项服务,您可以随时随地调用该服务,当然,要尊重应用程序的模块特性。

最新更新