我正在研究离子框架,我希望在ex的某个时间间隔内调用API调用。每30秒,我想使用按钮或其他东西手动启动和停止此API调用。因为我是离子框架的新手,我不知道如何实现这一点,我所知道的就是调用api,但我不知道如何在特定的时间间隔内调用API,手动启动和停止。所以有人可以帮助我吗?谢谢是提前。到目前为止,我所做的一切都在下面,
authenticate.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);
});
});
}
}
login.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);
});
}
}
答案 0 :(得分:0)
创建服务(这几天我忘了它叫做提供者)
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');
}
}
注入并使用提供者。函数toggleInterval()我通过单击按钮调用。
//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();
}
}