使用http调用和句柄响应在Angular 4中创建方法
我有一个具有请求函数的提供者类。它工作得很好:使用http调用和句柄响应在Angular 4中创建方法,angular,es6-promise,Angular,Es6 Promise,我有一个具有请求函数的提供者类。它工作得很好: sendRequest(requestBody:any,URL:string){ let headers = new Headers(); headers.append("Accept", 'application/json'); headers.append('Content-Type', 'application/json' ); let options = new RequestOptions({ header
sendRequest(requestBody:any,URL:string){
let headers = new Headers();
headers.append("Accept", 'application/json');
headers.append('Content-Type', 'application/json' );
let options = new RequestOptions({ headers: headers });
let body=requestBody;
body.key=this.key;
this.http.post(this.url+URL, body, options)
.subscribe(data => {
let json=JSON.parse(data['_body']);
let toast=this.toast.create({
message:json.response,
duration:3000,
position:'top'
});
toast.present();
return json;
}, error => {
console.log(error);// Error getting the data
});
}
我想调用这个方法,并希望在另一个类中得到json响应。我试着打电话向你保证,但没有成功。任何帮助都将不胜感激
编辑:
我想在尝试返回此文件的同时执行toast。http.post。。。它正在返回一个订阅对象。如何从中获取json数据
**编辑#2**
我在定义上使用map,在调用端使用subscribe,成功地返回了数据
return this.http.post(this.url+URL, body, options)
.map((data) => {
let json=JSON.parse(data['_body']);
let toast=this.toast.create({
message:json.response,
duration:3000,
position:'top'
});
toast.present();
return json;
}
并使用
this.request.sendRequest(requestBody,'api/login').subscribe((data)=>{
console.log(data);
});
吐司也有用
<强>解决< /强>
如果您的目标是追加头文件并显示一个TATASER,请考虑使用新的:< /P>中的一个intercept(req:HttpRequest,next:HttpHandler):可观察{
let headers=新的headers();
append(“Accept”,“application/json”);
headers.append('Content-Type','application/json');
let options=newrequestoptions({headers:headers});
const clone=req.clone({setHeaders:headers});
下一个返回
.handle(克隆| |请求)
.map(响应=>{
这个.toast.create(…);
返回响应;
});
}
您必须返回它:返回this.http.post…
然后您可以从另一个方法调用它检查此线程是否可能重复