-1

rxjs在 Angular 中调用数据服务时,我遇到了一个关于使用和 observables 的架构问题。

假设我有以下内容:

displayDetails(id: String): void {
  this._dataService.getById(id).subscribe(o => this.currentItem = o);
}

如果id找不到给定的项目怎么办?目前,我的服务向调用者返回了一个未定义的对象,这可能导致一个未定义的对象被设置为当前项目,然后在最坏的情况下将数据绑定错误打印到控制台。

对此有普遍接受的方法吗?当具有给定的项目无法加载时,返回调用error函数会更好吗?id

4

1 回答 1

0

不,返回error是不合适的,因为undefined不是error. 相反,您可以在您的内部处理subscribe并显示错误消息或采取任何必要的措施。

displayDetails(id: String): void {
    this._dataService.getById(id).subscribe(o => { 
                if(o) {
                  this.currentItem = o;
                }
                else {
                  //show or log error
                }
      });
  }

Errors如果您的服务器出现错误的请求错误或在处理可观察数据时发生任何逻辑错误,则会抛出 ex。

于 2019-02-07T15:33:22.920 回答