HTTP get请求只能使用离子一次

时间:2017-07-12 19:06:47

标签: angularjs ionic-framework ionic2

我正在尝试使用离子访问REST API。

updateMachine(id) {
  console.log(id);
  if (this.data) {
      return Promise.resolve(this.data);
  }

  return new Promise(resolve => {
    this.http.get(this.apiUrl)
    .map(res => res.json())
    .subscribe(data => {
        this.data = data;
        resolve(this.data);
    });
  });
}

这是该服务的承诺。当我点击一个按钮时,它会触发调用上述服务的功能。但请求仅发送第一次离子应用程序加载。之后,它不会将请求发送到服务器。但是发送第一次获取的响应。

1 个答案:

答案 0 :(得分:0)

这是代码编写工作的方式,逻辑是

  

如果未设置数据,则从http查询数据,否则返回现有数据

此部分检查现有数据并返回现有数据,您的功能不会再进行另一次http调用

if (this.data) {
      return Promise.resolve(this.data);
  }