繁体   English   中英

Angular 9:rxjs 6:如何返回手动 Observable of Error

[英]Angular 9 : rxjs 6 : how to return a manual Observable of Error

在我的 Angular 应用程序中,为了在 HorLigne 模式下测试一些功能,我需要模拟 http 有用的响应:

  • 包含一些数据的 200 OK 返回
  • 没有数据的 404 KO 返回

通常我试过这个:

@Injectable()
export class VerifService {
  mockedResult = false;
  verifData(mail, uuid) {
    if (this.mockedResult) {
      return ObservaleOf({ status: "OK" }).pipe(delay(3000));
    } else {
      return throwError({ status: 500, message: "not found" }).pipe(
        delay(3000)
      );
    }
  }
}

之后在我的组件中我这样做:

this.verifService.verifData(mail, uuid).subscribe(data=>{
  console.log('THIS WORKS')
}, err => {
  console.log('THIS FAILS')
}

对于mockedResult等于 true 的情况,成功的 200 OK 返回是有效的

但是对于 404 错误返回,它不起作用

还有其他模拟404错误可观察返回的好方法吗?

建议?

不知道哪里不工作。 如果您需要暂停一段时间:

interval(1000).pipe(
  switchMap(
    () => throwError(new Error())
  )
)

Pipe 将无法工作,因为 throwError 已停止 observable。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM