0

저는 Angular가 새로 도입되었지만 매우 간단한 것을 만들었습니다. (나는 할 수 없습니다) ... 나는 통신하는 '기본 서비스'를 만들고 싶습니다. 내 API를 백엔드하지만 세트 전에 몇 가지 물건 (그래서 헤더 변수 ... 등) ... 서비스 API와 통신이 '기본 서비스'를 호출해야 다른 모든 ... 여기 내 코드 :각도 4/5 HttpClient 맞춤 서비스

import { Injectable } from '@angular/core'; 
import { HttpClient, HttpRequest, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http'; 
import { Observable } from 'rxjs/Rx'; 
import { responseModel } from '../models/response.model'; 

@Injectable() 
export class BaseService { 

    public headers: HttpHeaders; 

    constructor(private _http: HttpClient) { 
     this.headers = new HttpHeaders(); 
     this.headers.append('Accept', 'application/json, */*'); 
     this.headers.append('Content-Type', 'application/json;charset=UTF-8'); 
    } 

    private callBackEnd(relativeEndPoint: string,reqMethod: string, 
     reqParams?: HttpParams, objBody?: any): Observable<responseModel> { 

     const reqUrl = 'https://mypath/' + relativeEndPoint; 
     return this._http.request<responseModel>(reqMethod, reqUrl, 
      { 
       body: objBody, 
       headers: this.headers, 
       params: reqParams, 
       responseType: 'json', 
       withCredentials: true 
      } 
     ); 
    } 

    handleError(error: any): Observable<responseModel> { 
     const out: responseModel= { 
      error: !error.ok, 
      code: "10", 
      message: "no connection", 
      more_info: "[email protected]", 
      response: {} 
     } 

     return Observable.create(observer => { 
      observer.next(out); 
      observer.complete(); 
     }); 
    } 
} 

아주 간단합니다 ... 'BaseService'의 DI 거기에있는 모든 서비스는

/*IMPORT EVERYTHING*/ 

@Injectable() 
export class CustomService { 

    constructor(private _http: BaseService) { 

    } 

    examplefunction(): Observable<responseModel> 
    { 
     return this._http.callBackEnd('/user/', 'GET') 
     .map(
      response => { 
       console.log(JSON.stringify(response)); 
      return response; 
      } 
     ) 
    } 

} 

내가 간단한 구성 요소를 만들 호출 할 수 있습니다

import { Component, OnInit } from '@angular/core'; 
import { CustomService } from './CustomService.service'; 
import { responseBE } from '../global/models/response.model'; 

@Component({ 
    selector: 'app-simple', 
    templateUrl: './simple.component.html', 
    styleUrls: ['./simple.component.css'] 
}) 
export class SimpleComponent implements OnInit { 

    constructor(private _service: CustomService) { } 

    ngOnInit() { 

    this._service.examplefunction() 
     .map(res => { 
     console.log(res); 
     }); 
    } 

} 

하지만 아무것도 작동 :(

어떤 생각?

+0

JS 오류가 있습니까? – mickaelw

+0

아무것도 ... 모든 것이 완벽 해 보이지만 요청을받지 못하는 것 같습니다. – teoooo78

+0

, BaseService의 callBackEnd가 비공개이기 때문에 이상합니다. 그래서, CustomService에 액세스 할 수 없습니다. – mickaelw

답변

2

Observable Need Subscription이 실행되면 구독이 누락되었다고 생각합니다.

this._service.examplefunction() 
    .subscribe(res => { 
    console.log(res); 
    });