【发布时间】:2016-05-06 15:43:30
【问题描述】:
我已经为 angular 2 http 服务创建了一个包装器,它有一个如下的 post 方法。它返回一个 observable。
post(url:string, data:any, headers:any, animation:boolean):any{
let thisObject = this;
if(animation!=false) {
thisObject.emitCallStateChange(true);
}
return this._http.post(url,data,headers).finally(function(){
thisObject.emitCallStateChange(false);
});
}
我是这样消费的:
return this._http_service.post(ConfigService.BASE_URL+'api/auth/forgotpass',email,{
headers:headers
},true);
我想要做的是对 csrf 验证请求执行 GET 并附加 csrf 令牌,然后在 post 方法中返回此 observable。因此,我尝试将一个可观察对象包装在另一个对象中,如下所示:
this._http.get("api/getCsrf").subscribe(csrf=>{
let body = csrf.json();
data += "&_csrf="+body._csrf;
console.log(data);
return this._http.post(url, data, headers).finally(function () {
thisObject.emitCallStateChange(false);
});
});
但由于需要返回observable 的明显原因,它不起作用。一旦对 csrf 的请求完成,我需要一种方法来使用 post 请求返回最终的 observable。有没有一种方法可以链接可观察对象并只返回其中一个?
【问题讨论】:
标签: typescript angular rxjs