输入错误this.httpClient.get(...)。pipe不是函数

时间:2018-01-24 19:10:27

标签: angular rxjs

更新 - 错误已解决

我通过发出命令解决了这个错误:

public static LocalDate getLocalDateFromDate(Date date){
   return LocalDate.from(Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()));
}

如果有人想向我解释为什么webpack --config必要,我很乐意提出并接受你的回答。

我什么时候必须重新配置webpack - 每次更新任何npm包或依赖项?

原始问题

我跟随英雄之旅而被困在最后一章" Http", at this step

当我去尝试获取我的英雄列表时,我在Chrome控制台中收到错误:

webpack --config webpack.config.vendor.js

这是导致错误的代码段:

ERROR TypeError: this.httpClient.get(...).pipe is not a function

这都在Visual Studio 2017解决方案/项目中,我使用自己的WebApi 2 Controller提供数据,因此我没有使用任何CLI或Tour of Heroes建议的内存中的Web API模块。该项目是使用VS2017内置的Angular模板生成的。

没有编译错误,如果省略" .pipe ...."该调用按预期工作。代码。

这是我的package.json:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/Observable/Of';
import { catchError, map, tap } from 'rxjs/operators';
import { HttpClient, HttpHeaders } from '@angular/common/http';

import { Hero } from '../models/Hero';

@Injectable()
export class HeroService {

    private apiUrl = "api/v1/Hero";

    constructor(
        private messageService: MessageService,
        private httpClient: HttpClient
    ) {}

    getHeroes(): Observable<Hero[]> {

        /// This is working as expected!
        //return this.httpClient.get<Hero[]>(this.apiUrl);

        return this.httpClient.get<Hero[]>(this.apiUrl)
            .pipe(
                tap(heroes => this.log(`fetched heroes list`)),
                catchError(this.handleError('getHeroes', []))
        );
    }

    ...
}

2 个答案:

答案 0 :(得分:1)

不确定postinstall步骤是如何相关的,当你收到此错误时也不知道你正在运行哪个npm命令,但通常我可以告诉你webpack默认加载名为webpack.config.js的文件。

您会注意到vendor部分丢失了。我假设,您的供应商配置与标准配置有一些差异,这就是解决您的问题。

你的package.json遗憾地没有说什么。你必须显示两个配置。

答案 1 :(得分:0)

根据评论请求将其作为答案发布。

<强>解决方案

我通过发出命令解决了这个错误:

webpack --config webpack.config.vendor.js