无法从内部到外部再从承诺中获取价值

时间:2019-07-05 12:31:19

标签: angular6

我正在尝试从内到外获取价值,然后使用诺言。

在我的控制器中,我有:

async Sample(userId: number)
  {
      let data = this.userService.getAffectedExpertisesPromise(userId);
      await data.then((uri) =>
      {
          uri.forEach((exp: Expertise) =>
          {
              this.empList.push(exp.name);
          });
      })

      return this.empList;
  }

ngOnInit 上,我调用此函数:

this.Sample(25).then(item =>
                    {
                        item.forEach((expLibelle: String) =>
                        {
                            listExp.push(expLibelle);
                        });
                        console.log("------------------------ List Size Inside: " + listExp.length);
                    });

      console.log("------------------------ List Size Outside : " + listExp.length);

服务用户文件中,我具有:

getAffectedExpertisesPromise(id: number): Promise<any>
    {
        return this.http.get(`${this.baseUrl}/users/expertisesObj/${id}`).toPromise();
    }

它产生:

  

------------------------外部列表大小:0

     

------------------------内部列表大小:3

如您所见:

  • then中的大小为3->正确答案
  • then中的大小为0->错误的答案

您能帮我解决这个问题吗?。

非常感谢。

1 个答案:

答案 0 :(得分:1)

为什么不尝试使用XMLHttpRequest

var request = new XMLHttpRequest();
request.open('GET', 'http://localhost:6227/api/auth/users', false);  
request.send(null);

HTH。