首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Angular 6中将HttpParams与Put和Post结合使用将返回类型更改为Observable<HttpEvent<T>>

在Angular 6中,我们可以使用HttpParams与Put和Post方法结合使用,并将返回类型更改为Observable<HttpEvent<T>>。

首先,让我们了解一下Angular 6中的HttpParams。HttpParams是一个不可变的类,用于设置HTTP请求的查询参数。它提供了一种简单的方式来构建URL查询参数,并将其附加到HTTP请求中。

在使用HttpParams时,我们可以通过使用set()方法来设置参数的键和值。例如,我们可以使用以下代码设置一个名为"page"的参数,并将其值设置为1:

代码语言:txt
复制
let params = new HttpParams().set('page', '1');

接下来,我们可以使用这些参数来执行HTTP请求。在Angular 6中,我们可以使用HttpClient模块来发送HTTP请求。HttpClient模块提供了一组强大的方法来执行各种类型的HTTP请求,包括GET、POST、PUT等。

当我们使用Put和Post方法时,我们可以将返回类型更改为Observable<HttpEvent<T>>。这样做的好处是我们可以获取到HTTP请求的进度信息,并且能够处理上传和下载文件等复杂的操作。

下面是一个示例代码,演示了如何在Angular 6中将HttpParams与Put和Post结合使用,并将返回类型更改为Observable<HttpEvent<T>>:

代码语言:txt
复制
import { HttpClient, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class MyService {
  constructor(private http: HttpClient) {}

  postData(url: string, body: any): Observable<HttpEvent<any>> {
    let params = new HttpParams().set('page', '1');
    let options = {
      params: params,
      reportProgress: true // 开启进度报告
    };

    const req = new HttpRequest('POST', url, body, options);
    return this.http.request(req);
  }

  putData(url: string, body: any): Observable<HttpEvent<any>> {
    let params = new HttpParams().set('page', '1');
    let options = {
      params: params,
      reportProgress: true // 开启进度报告
    };

    const req = new HttpRequest('PUT', url, body, options);
    return this.http.request(req);
  }
}

在上面的代码中,我们创建了一个名为MyService的服务,并在其中定义了两个方法:postData()和putData()。这些方法接受一个URL和一个请求体作为参数,并返回一个Observable<HttpEvent<any>>。

在这些方法中,我们首先创建了一个HttpParams对象,并使用set()方法设置了一个名为"page"的参数。然后,我们创建了一个options对象,并将params属性设置为我们创建的HttpParams对象。我们还将reportProgress属性设置为true,以便开启进度报告。

接下来,我们使用HttpRequest类创建了一个HTTP请求。我们传入了请求的方法(POST或PUT)、URL、请求体和选项。最后,我们使用http.request()方法发送请求,并返回Observable<HttpEvent<any>>。

这样,我们就可以在Angular 6中使用HttpParams与Put和Post结合使用,并将返回类型更改为Observable<HttpEvent<T>>。这样做可以让我们更好地处理HTTP请求的进度和复杂操作。如果你想了解更多关于Angular 6中的HttpClient模块的信息,可以参考腾讯云的相关产品:Angular 6 HttpClient

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Angular 从入坑到挖坑 - HTTP 请求概览

    XMLHttpRequest fetch 以前的项目中,通常使用 jquery 的简化版 ajax 请求向后端请求数据,归根到底最终还是通过 XMLHttpRequest 后端进行数据交互 ...项目中创建一个接口,按照后端返回的数据信息进行属性的定义,用来映射请求的响应信息(Angular 只能将请求响应对象转换成接口类型,不能自动转换成类实例) ng g interface interfaces...4.1.3、提交数据到服务端 同后端接口进行交互时,获取数据一般用的是 get 请求,而当进行数据新增、更新、删除时则会使用 postput、delete 这三个 HTTP 谓词 毒鸡汤这个接口中...处理错误信息的回调方法中,方法返回了一个 HttpErrorResponse 对象来描述错误信息 因为这里的错误更多是服务后端进行通信产生的错误,因此对于错误信息的捕获处理更应该放到服务中进行,...; } } 当请求发生错误时,通过 HttpClient 方法返回Observable 对象中使用 pipe 管道错误传递给自定义的错误处理器,从而完成捕获错误信息的后续操作 ?

    5.3K10

    angular使用NG ZORRO来构建博客展示项目(简单实现展示页面)

    使用 NG ZORRO 在上一篇文章中,我们已经安装了NG ZORRO,并在跟模块中引入了,子模块中使用还需要再次引入。...有的可以不用设计成angular模块或者组件,初学者真烦恼 api-base-service.ts import { HttpClient, HttpHeaders, HttpParams } from.../Observable'; /** * 进一步封装HttpClient,主要解决: * 后台apb框架返回数据的解析 */ export abstract class AbpApiService...: any): Observable { return this.post(url,body,params).map(r=>{ return this.process...加入动画效果 有动画使用相关疑惑的可以参考我的这篇文章及其相关文章:Angular练习之animations动画 源码下载 思考 angular模块,组件,普通的ts文件之间的关系区别。

    1.6K30

    【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例

    开发中Rxjs几乎默认是Angular技术栈绑定在一起的,笔者最近正在使用ionic3进行开发,本篇将对基本使用方法进行演示。.../message.service';//某个自定义的服务 import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http...使用Rxjs构建Http请求结果的处理管道 3.1 基本示例 尽管看起来Http请求的返回结果是一个可观测对象,但是它却没有map方法,当需要对http请求返回的可观测对象进行操作时,可以使用pipe操作符来实现...4.1 shareReplay请求缓存 开发中常会遇到这样一种场景,某些集合型的常量,完全是可以复用的,通常开发者会将其进行缓存至某个全局单例中,接着优化阶段,通过增加一个if判断在请求之前先检查缓存再决定是否需要请求...,{observe:'response'}); } http请求默认返回一个冷Observable,每当返回的流被订阅时就会触发一个新的http请求,Rxjs中通过shareReplay( )操作符一个可观测对象转换为热

    6.7K20

    RxJS 处理多个Http请求

    管理多个异步数据请求会比较困难,但我们可以借助 Angular Http 服务 RxJS 库提供的功能来实现上述的功能。处理多个请求有多种方式,使用串行或并行的方式。...`))); const subscribe = example$.subscribe(val => console.log(val)); 在上面示例中包含两种 Observable 类型: 源 Observable...Map Subscribe 有些时候,当我们发送下一个请求时,需要依赖于上一个请求的数据。即我们需要在上一个请求的回调函数中获取相应数据,然后发起另一个 HTTP 请求。...forkJoin 接下来的示例,我们将使用 forkJoin 操作符。如果你熟悉 Promises 的话,该操作符 Promise.all() 实现的功能类似。...一旦列表的 Observable 对象都发出值后,forkJoin 操作符返回Observable 对象会发出新的值,即包含所有 Observable 对象输出值的数组。

    5.8K20

    ng6中,HTTP拦截器里,异步请求数据,之后再返回拦截器继续执行用户请求的方法研究

    一会儿 会在这个代码基础上增加后续讨论的代码 intercept(req: HttpRequest, next: HttpHandler): Observable...这样用户连续使用系统时,一旦登录时间到30分钟,token就失效了,回到登录页面,体验很不好。...那么如何监测用户是“连续活动”的时候,且当前token超时后,系统能自动获取新token,并且之后请求中使用该新token呢?...其实这个事情要解决2个问题: 1、时间的判定逻辑:   判断当前时间 用户的上次活动时间获取token的时间, 决定是让用户重登录,还是我的程序自动更新一下token,让用户继续访问系统。...1、既然当前拦截器需要返回一个Observable对象,我就先new一个Subject给拦截器,让它先返回一个Subject.          2、此时我就放心去异步请求新token,请求后,新token

    1.9K20

    RxJava的Single、Completable以及Maybe

    Maybe tomorrow.jpeg 通常情况下,如果我们想要使用 RxJava 首先会想到的是使用Observable,如果要考虑到Backpressure的情况, RxJava2.x 时代我们会使用...除了ObservableFlowable之外, RxJava2.x 中还有三种类型的Observables:Single、Completable、Maybe。...打印结果如下: 1 2 3 4 5 6 7 8 9 10 Completable中,andThen有多个重载的方法,正好对应了五种被观察者的类型。...下面两个接口使用了Retrofit,分别是用于获取短信验证码更新用户信息,其中更新用户信息如果用PUT符合Restful的API。...下面的网络请求,最初返回类型是Flowable,但是这个网络请求并不是一个连续事件流,我们只会发起一次 Post 请求返回数据并且只收到一个事件。

    2.6K31

    一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

    您可以通过编辑prefix属性将其更改为首选项的前缀.angular-cli.json,因此ng generate首次使用前最好先这样做。 所以,我们有一个组件的构造ngOnInit函数一个函数。...使用模板驱动的表单以前使用简单的HTML表单完全相同。如果我们需要复杂的东西,那么Angular中有一种不同的形式:反应式。我们介绍转换表单后他们的反应。...我猜你们至少都知道一些关于承诺构建异步代码的内容。承诺处理单一事件。POST例如,我们要求浏览器创建一个承诺。RxJS使用Observable来处理事件流。...为此,我们使用Reducers的纯函数,这意味着对于任何给定的StateAction它的payloadreducer,它将返回使用相同参数的reducer函数的任何其他调用相同的状态。...之前一样的故事,我们使用扩展运算符打开我们的对象卡阵列,并将其扩展有效载荷(来自服务器的卡,我们的例子中)结合起来。

    42.6K10

    大前端中如何更优雅的编写网络请求层逻辑

    npm 插件使用[2] 前置知识 装饰器 装饰器(Decorator)是一种类(class)相关的语法,用来注释或修改类类方法。许多面向对象的语言都有这项功能。...里配置 emitDecoratorMetadata 选项 defineMetadata 当作 Decorator 使用,当修饰类时,类上添加元数据,当修饰类属性时,类原型的属性上添加元数据。...: any) {} } 复制代码 HttpParams HttpPostData 可以定义需要传递的参数,其实现方式参考了 nest 的使用方式,既可以整个实体当作参数传递给后端接口,也可以通过对象字段标识只传递对象的一个属性...还是以之前的案例,getDataList 的第二个参数通过 HttpRes 修饰,函数体内部就可以通过 res 获取后端返回的数据。...: any) { // 通过 res 可以拿到后端返回的Reponse, 不过这个 res 是 AxiosResponse 类型,默认情况下,函数体为空时。

    64920

    实际项目中如何更优雅的编写网络请求层逻辑

    npm 插件使用 前置知识 装饰器 装饰器(Decorator)是一种类(class)相关的语法,用来注释或修改类类方法。许多面向对象的语言都有这项功能。...里配置 emitDecoratorMetadata 选项 defineMetadata 当作 Decorator 使用,当修饰类时,类上添加元数据,当修饰类属性时,类原型的属性上添加元数据。...: any) {} } 复制代码 HttpParams HttpPostData 可以定义需要传递的参数,其实现方式参考了 nest 的使用方式,既可以整个实体当作参数传递给后端接口,也可以通过对象字段标识只传递对象的一个属性...还是以之前的案例,getDataList 的第二个参数通过 HttpRes 修饰,函数体内部就可以通过 res 获取后端返回的数据。...: any) { // 通过 res 可以拿到后端返回的Reponse, 不过这个 res 是 AxiosResponse 类型,默认情况下,函数体为空时。

    53710

    angular面试题及答案_angular面试

    observable或promise返回data时,我们使用一个临时属性来保存内容。稍后,我们将相同的内容绑定到模板。...此功能用于更改模板上的输出;比如字符串更改为大写并在模板上显示它。它还可以相应地更改日期格式。...Observer / Observable Observable(可观察者) 接受一个Observer作为参数然后返回unsubscribe函数 – 特征:...Constructor ngOnInit 的本质区别 Constructor ES6中 constructor表示构造函数,使用在class中。来初始化操作。...6)如果应用程序较大时,我会考虑延迟加载而不是完全捆绑的应用程序。 27. 使用Angular的好处 可以添加自定义的directive. 优秀的社区支持。 客户端和服务器的通讯非常便利。

    11.1K120
    领券