我在从请求中return
输入字符串时遇到问题。
getTest(id: string): string {
let foo: string = '';
this.service.testProfile(id).subscribe(
response => {
foo = response.body.foo;
},
error => {
console.log(error);
}
)
return foo;
}
我想对自己的回复foo
进行初始化。 foo
,然后仅返回foo的新值。一切正常,但没有结果,知道我在做什么错吗?
谢谢
答案 0 :(得分:0)
您返回的字符串仍必须填充(因此为空),因为这样做的异步代码在您返回时尚未完成。
您应该返回的是一个可观察的对象,并在subscribe(...)
调用中发出正确的字符串。
答案 1 :(得分:0)
像这样更改您的代码,然后尝试。.
getTest(id: string): string {
this.service.testProfile(id).subscribe(
response => response.body.foo,
error => {
console.log(error);
return '';
}
)
}
答案 2 :(得分:0)
我通过Promise解决
getTest(id: string): Promise<any> {
return new Promise((resolve,reject) => {
this.service.testProfile(id).subscribe(
response => {
foo = response.body.foo;
},
error => {
console.log(error);
}
)
}
)
}
谢谢大家!