javascript - 如何使用Observable进行 Angular 错误处理

标签 javascript angular error-handling observable

let mydata = [a,b,c,d,1,2,3]
let MissingData = "No data available"

  public getData(): Observable<any[]> {

    if (this.mydata !== undefined) {
    return new Observable(observer => {
      observer.next(this.mydata);
      observer.complete();
   
    });
  }
  else if (this.mydata === undefined){
   return new Observable(MissingData) 
  }
然后我将数据中断服务,因此如果有任何数据记录,并且没有数据,则返回MissingData
service.getData().subscribe((res) => {
 console.log (res);
}

最佳答案

您可以像这样手动抛出可观察到的错误

  else if (this.mydata === undefined){
   throw Observable.throw(MissingData)
  }
然后像这样订阅
service.getData().subscribe((res) => {
 console.log (res);
}, err => {
  console.error(err)
})
因此完整的代码如下所示:
let mydata = [a,b,c,d,1,2,3]
let MissingData = "No data available"

  public getData(): Observable<any[]> {

    if (mydata) {
    return new Observable(observer => {
      observer.next(mydata);
      observer.complete();
   
    });
  }
   throw Observable.throw(MissingData)
}

//Somewhere in the scripts
service.getData().subscribe((res) => {
     console.log (res);
    }, err => {
      console.error(err)
    })
我也做了一些重构,只是为了缩短代码。希望能帮助到你。干杯。

关于javascript - 如何使用Observable进行 Angular 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63484796/

相关文章:

css - 动画星云侧边栏组件

java - 预期如何修复 '('或 '['

javascript - Typeahead 和 Bloodhound 动态改变局部值

javascript - Angular JS - 如何在 ng-repeat 中添加额外的 DIV

angular - Ionic 3 中提供者的全局实例

angular - 我如何制作 MatDialog 可拖动/Angular Material

python - 捕获错误并退出

php - 在可调用的set_error_handler中获取产生错误的函数名称

javascript - Ajax 和防止双重 "submit"

javascript - 如何反转 Canvas 上元素的方向?