我正在研究离子框架,我想在某个时间间隔内调用 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();
}
}