typescript - RXJS Angular - 使用 .subscribe 和 Observable 进行错误处理

标签 typescript error-handling rxjs httpclient rxjs-observables

我有一个后端 API 来创建新产品。前端 Angular 代码需要调用后端 API。如何使用**.subscribe**进行错误处理。我正在使用 HTTPClientObservable 并一直在阅读有关 RXJS 如何利用错误处理的内容,

应用程序应将其称为 Observable 和 .subscribe()。

api/create 应该处理成功和失败(错误) - 如果API返回200:它应该打印成功 - 如果API返回400,应该抛出一个错误

伪代码

import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';

ID = 'foo';
            this.http.post('/api/create', {
                productName: this.form.value.productName,
                productValue: this.form.value.productValue,
            }).subscribe(
                resp => this.onSubmitSuccess(resp), err => this.onSubmitFailure(err)
            );


private onSubmitSuccess(resp) {
        console.log(resp);
        this.ID = resp.ID;
        this.submitSuccess = true;
        this.submitFailed = false;
    }

    private onSubmitFailure(resp) {
        console.log(resp);
        this.submitFailed = true;
        this.submitSuccess = false;
    }  ```

最佳答案

早期版本曾经是这样的:

this.http.get(url).subscribe(
 data =>
 {
   //do something
 },
 error =>
 {
   //handle error
 }
);

在最新版本中,他们已弃用此格式。现在你必须做:

this.http.get(url).subscribe(
 {
   next: (data) => 
   {
     //do something
   },
   error: (error) =>
   {
     //handle error
   }
 }
);

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

相关文章:

Angular 5 - 带对象的表单控件

javascript - 将我的站点配置注入(inject)到 Angular 8 的其他模块中

c# - 当前状态对象 - C#

.net - Node JS setInterval。 TypeError : Cannot read property 'apply' of undefined

javascript - 冷可观察量的用例是什么?

javascript - 如何动态更改下拉选项

javascript - 从 TypeScript 功能的 Angular 来看,基于类的语法是否可以为 Vue.js 3 实现?

php - 如果条件为php中的单个等于,则在PhpStorm中添加自定义错误突出显示

javascript - Angular 7 中的管道和 map 之间的确切区别是什么?

Angular 如何在 canActive 函数中获取 header 值?