只使用下一个省略错误并在 Angular 可观察中完成是否有意义?



我的服务中有一个方法,如下所示。在那里,我正在管理下一个错误。但是,由于我想使用户免受实际错误消息的影响,因此我只想显示操作的结果。这就是为什么我选择发出一个布尔值,将成功映射到真,将失败映射到假。

logIn(userName: string, password: string): Observable<boolean> {
const headers = new HttpHeaders({ userName: userName, password: password });
return new Observable(_ => {
this.client.post(environment.API + "Admin/LogIn", null, { headers: headers })
.subscribe(
next => _.next(true),
error => _.next(false));
});
}

然后我想,消费组件中唯一可能的结果是成功,因为基础服务中的任何结果都映射到下一个。我也知道我将收到一个值(使可观察量的使用有点矫枉过正(。因此,我实现了以下使用者。

this.service.logIn(this.userName, this.password)
.subscribe(
next => { ... }
);

在这种特殊情况下,这是一种明智的方法,还是我在没有意识到的情况下错过了一些相当关键的东西?(这对我来说似乎很棒,但有时天才的一笔可能只是一笔......

如果链形成良好,则订阅中不需要太多逻辑。在您的情况下,如果成功使用map/do,如果错误使用catch运算符代替

this.service.logIn(this.userName, this.password)
.do(... do your success handling)
.catch(e=>{
... do you error handling logic
return Observable.of(e)})
.subscribe();

最新更新