ここにコード:
@Injectable()
export class ProjectService {
create$: Rx.Subject<Response> = new Rx.Subject();
_create: Rx.Observable<Response> = this.create$.asObservable();
newProject: Rx.Subject<ProjectInfo> = new Rx.Subject();
get$: Rx.Subject<any> = new Rx.Subject();
_get: Rx.Observable<any> = this.get$.asObservable();
constructor(public _http: Http, public option: HeaderWithToken) {
this._create = this.newProject.flatMap(project => {
console.log("create",project);
return this._http.post(baseURL + "/project",
JSON.stringify(project), this.option.Option);
});
this._get = this._http
.get(baseURL + "/project", this.option.Option)
.do(x=>{
console.log("to get",x);
})
.map(res => res.json());
this._create
.map(x=>x.json())
.filter(res=>res.status==200)
.subscribe(this.get$);
this._get.subscribe(x => {
console.log("get:", x);
})
}
addProject(project: ProjectInfo) {
this.newProject.next(project);
}
getProject() {
return this._get;
}
}
ストリームが 1 として機能することを願っています。 addProject を呼び出したとき => 値を発行 => ポスト リクエストをトリガー => ポスト レスポンス 200 が get リクエストを続行したとき (_get stream) => get$ ストリームを他の場所でサブスクライブできます。すべての最新データ。
実際:投稿は成功しましたが、取得リクエストには入りませんでした。コードに問題があるようです
this._create
.map(x=>x.json())
.filter(res=>res.status==200)
.subscribe(this.get$);
助けてください!