代码之家  ›  专栏  ›  技术社区  ›  Stéphane GRILLON

Angular 7(RxJs 6.x)-如何使用投掷器

  •  0
  • Stéphane GRILLON  · 技术社区  · 5 年前

    我想在我的订阅服务器上使用第二个参数(错误),但不起作用。

    我的观察者代码:

    return Observable.create(obs => {
      cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) {
        if (error) {
          console.log(error);
          return throwError(error || 'Server error');
        } else {
          console.log(data);
          return obs.next(data.User);
        }
      });
    });
    

    我的 console.log(error); 是正常的,但之后什么都没有(没有痕迹)。

    this.myService.createUser(user).subscribe(
             result => this.getUsers(),
             error =>  this.errorUsersProcessor(error));
    

    我的订阅服务器上的第二个参数(错误)从不调用。

    0 回复  |  直到 5 年前
        1
  •  2
  •   Felix Movee    5 年前

    根据文件: 投掷者

    所以我猜投掷者是在向一个新的观测者发出错误,而不是你订阅的观测者。

    您可以尝试通知您的实际观察者发出错误:

    obs.error(error || new Error('Server error'));
    
        2
  •  0
  •   Paul    5 年前

    您应该能够使用管道和catchError操作符。你能试试下面的代码吗

    this.myService.createUser(user).pipe(
         switchMap(response => this.getUsers()),
         catchError(err =>  this.errorUsersProcessor(error))
    );
    
    推荐文章