Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs HTTP get请求只对ionic有效一次_Angularjs_Ionic Framework_Ionic2 - Fatal编程技术网

Angularjs HTTP get请求只对ionic有效一次

Angularjs HTTP get请求只对ionic有效一次,angularjs,ionic-framework,ionic2,Angularjs,Ionic Framework,Ionic2,我正在尝试使用ionic访问RESTAPI 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 =>

我正在尝试使用ionic访问RESTAPI

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

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

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

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

这一部分检查现有数据并返回现有数据,您的功能不再执行另一个http调用

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