gpt4 book ai didi

当从另一个服务调用服务时,Angular 6/Typescript HTTP post 请求返回未定义

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:45 26 4
gpt4 key购买 nike

我正在使用 Angular 6。

我正在从另一个服务(服务 1)调用服务(服务 2)getData。 post请求在service2中成功,将数据打印到控制台。但是,数据不会返回到调用服务 2 的服务 1,并且“结果”对象始终未定义。

调用服务(service1)

this.service.getData(id, token).then(
result => {
console.log("result " + result);
},
error => {
console.log("error " + error);
});

服务(服务2)

getData(id, token): Promise < any > {
var startTime: number = new Date().getTime();

return new Promise < any > ((resolve, reject) => {
this.http.post(url, soapMessage, {
headers: new HttpHeaders().set('Content-Type', 'text/xml'),
responseType: 'text'
}).toPromise().then(
res => { // Success
resolve();
console.log(res);
//return res;
},
msg => { // Error

}
);
});
}

最佳答案

你错过了在 resolve 中传递 res:

.then(res => { // Success
resolve(res);
console.log(res);
//return res;
},

注意:

不太确定您为什么无缘无故地返回 Promise。您的代码可以像这样进行重大重构:

服务 2:

getData(id, token): Promise < any > {
var startTime: number = new Date().getTime();

return this.http.post(url, soapMessage, {
headers: new HttpHeaders().set('Content-Type', 'text/xml'),
responseType: 'text'
});
}

服务 1:

this.service.getData(id, token).subscribe(
result => {
console.log("result " + result);
},
error => {
console.log("error " + error);
});

关于当从另一个服务调用服务时,Angular 6/Typescript HTTP post 请求返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com