gpt4 book ai didi

angular - HttpModule 和 HttpClientModule 的区别

转载 作者:太空狗 更新时间:2023-10-29 16:44:08 28 4
gpt4 key购买 nike

使用哪个构建模拟网络服务来测试 Angular 4 应用程序?

最佳答案

如果您使用的是 Angular 4.3.x 及更高版本,请使用 HttpClientModule 中的 HttpClient 类:

import { HttpClientModule } from '@angular/common/http';

@NgModule({
imports: [
BrowserModule,
HttpClientModule
],
...

class MyService() {
constructor(http: HttpClient) {...}

它是 @angular/http 模块的 http 的升级版本,具有以下改进:

  • Interceptors allow middleware logic to be inserted into the pipeline
  • Immutable request/response objects
  • Progress events for both request upload and response download

您可以在 Insider’s guide into interceptors and HttpClient mechanics in Angular 中了解它的工作原理.

  • Typed, synchronous response body access, including support for JSON body types
  • JSON is an assumed default and no longer needs to be explicitly parsed
  • Post-request verification & flush based testing framework

以后旧的 http 客户端将被弃用。这是 commit message 的链接和 the official docs .

还要注意,旧的 http 是使用 Http 类 token 而不是新的 HttpClient 注入(inject)的:

import { HttpModule } from '@angular/http';

@NgModule({
imports: [
BrowserModule,
HttpModule
],
...

class MyService() {
constructor(http: Http) {...}

此外,新的 HttpClient 似乎在运行时需要 tslib,所以你必须安装它 npm i tslib 并更新 system .config.js 如果您使用的是 SystemJS:

map: {
...
'tslib': 'npm:tslib/tslib.js',

如果您使用 SystemJS,则需要添加另一个映射:

'@angular/common/http': 'npm:@angular/common/bundles/common-http.umd.js',

关于angular - HttpModule 和 HttpClientModule 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45129790/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com