你好,我需要在发布 json 对象后得到一些响应,使用 toPromise,它是我的代码,响应未定义:
export class ApiStorage{
constructor( @Inject(Http) private http: Http ){}
rs(){
this.http.post('http://0.0.0.0:80/student/outbound', this.json, headers)
.toPromise()
.then(response => {
respond = JSON.stringify(response);
return respond; //<- edited
})
.catch((error: any) => {
...
});
}
}
然后当我在主要组件中使用时
send(){
respondJSON = apistorage.rs();
console.log(respondJSON);
}
responseJSON 未定义
最佳答案
respond
在您的代码中将始终未定义,因为您正在对 Web 服务进行异步调用,在登录到控制台之前您不会等待该服务。
export class ApiStorage{
constructor( @Inject(Http) private http: Http ){}
rs() {
return this.http.post('http://0.0.0.0:80/student/outbound', this.json, headers)
.toPromise()
.then(response => {
let respond = JSON.stringify(response));
return respond;
})
.catch((error: any) => {
...
});
}
}
// rs now returns a promise, which can be used like this
// inside another function
send() {
apistorage.rs().then(res => {
console.log(res);
}
}
关于javascript - 获取 Post angular 2 toPromise HTTP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44921504/