如何在 Ionic 中以时间间隔调用 API



我正在研究离子框架,我想在某个时间间隔内调用 API 调用,例如每 30 秒,我想使用按钮或其他东西手动启动和停止此 API 调用。 由于我是离子框架的新手,我不知道如何实现这一目标,我所知道的只是调用API, 但我不知道如何在特定的时间间隔内调用API,手动启动和停止。那么谁能帮我?感谢是进步。到目前为止,我所做的如下,

身份验证.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class AuthenticateProvider {
    body: any;
//  apiUrl = 'https://jsonplaceholder.typicode.com';
    apiUrl = 'http://dev123:5800/api';
    getToken(body) {
      if (this.body) {
        return Promise.resolve(this.body);
      }
      return new Promise((resolve,reject) => {
        this.http.post(this.apiUrl+'/authenticate',body)
            .subscribe(res => {
                resolve(res);
            }, (err) => {
                reject(err);
            });
      });
    }
}

登录.ts

export class LoginPage {
constructor(public navCtrl: NavController,
        public authenticateProvider: AuthenticateProvider) {
    }
getToken() {
    this.authenticateProvider.getToken(this.creds)
        .then(result => {
            if (JSON.parse(result.text()).response !== "OK") {
                this.err = JSON.parse(result.text()).response;
            } else {
                dosomething();
            }
        }, (err) => {
            console.log("Error is" + err);
        });
    }
}

创建服务(这些天我忘记了它叫的提供者)

ionic g provider interval

提供程序代码:

//interval.ts
import {Injectable} from '@angular/core';
@Injectable()
export class IntervalProvider {
  intervalHandle: any = null;
  constructor() {
  }
  toggleInterval() {
    if (this.intervalHandle === null) {
      this.intervalHandle = setInterval(() => {
        this.callAPI();
      }, 1000);
    } else {
      clearInterval(this.intervalHandle);
      this.intervalHandle = null;
    }
  }
  callAPI() {
    console.log('API called');
  }
}

注入和使用提供程序。 函数切换间隔() 我从按钮单击调用。

//home.ts 
import { Component } from '@angular/core';
import {IntervalProvider} from '../../providers/interval/interval';
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  constructor(private intervalProvider: IntervalProvider) {
  }
  // called by your click button
  toggleInterval() {
    this.intervalProvider.toggleInterval();
  }
}

相关内容

  • 没有找到相关文章

最新更新