1
나는 일을 다음을 수행 할 수있는 경우 궁금하네요 :어떻게하면 HTTP 응답을 반환 할 수 있습니까?
내가 HTTP GET
요청 대신 직접 Observable<Response>
인스턴스를 반환에서 응답을 반환해야합니다.
예는 모든 일을 조금 명확히 수 있습니다
@Injectable()
export class ExampleService {
constructor(@Inject(Http) protected http: Http) { }
static model: { [uri: string]: any } = {}
public get(uri: string): any {
if (typeof ExampleService.model[uri] === 'undefined') {
ExampleService.model[uri] = this.http.get(uri).map(response => response.json()) // additionally do some magic here, it is Observable<any> instance now
}
return ExampleService.model[uri]
}
}
요약 :
public get(uri: string): Observable<any> {
return new Observable(observer => {
if (!ExampleService.model[uri]) {
let sub = this.http.get(uri).map(response => response.json()).subscribe(
src => observer.next(ExampleService.model[uri] = src),
err => console.error(err),
() => observer.complete()
)
return() => sub.unsubscribe()
}
observer.next(ExampleService.model[uri])
observer.complete()
})
}
: 솔루션 위
Günter Zöchbauer answer에 따르면 나는 이런 식으로 뭔가를 사용할 필요가 대신 그 중, 수 없습니다
이 링크는 문제를 이해하는 데 도움이됩니다. http://stackoverflow.com/questions/23231909/collect-rxjs-observable-to-array – AngJobs