在http get请求Angular 6中返回字符串

时间:2018-10-08 11:58:01

标签: angular http angular6

我在从请求中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的新值。一切正常,但没有结果,知道我在做什么错吗?

谢谢

3 个答案:

答案 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);
   }
   )
  }
  )
 }

谢谢大家!