首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离子2计划服务

离子2计划服务
EN

Stack Overflow用户
提问于 2017-03-04 07:09:11
回答 1查看 874关注 0票数 2

我有一个离子2项目,客户通过自定义提供者调用的服务来检查剩余的单元。目前,客户可以输入参考号码,供应商将像往常一样返回单位,一切正常。我想要的是在后台定期调用此服务,让我们每隔30分钟进行一次检查,以便当单位低于一定值时,我可以通知客户。

GetUnitsProvider:

代码语言:javascript
运行
复制
    import { Injectable } from '@angular/core';
    import { Http } from '@angular/http';
    import 'rxjs/add/operator/map';
    import { Observable } from 'rxjs/Rx';
    import { Meter } from '../models/meters';

    @Injectable()
    export class GetUnitsProvider {
      constructor(public http: Http) {} 
        // get the customer units
        loadUnitsBalance(id:number): Observable<Meter[]> {
        return this.http.get(`http://example.com/balance.pl?referencenumber=${id}&api=json`)
          .map(res => <Meter[]>res.json());
        }
    }

UnitsPage.ts

代码语言:javascript
运行
复制
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Meter } from '../../models/meters';
import { GetUnitsProvider } from '../../providers/get-units-provider';

@Component({
  selector: 'units-page',
  templateUrl: 'unitspage.html'
})
export class UnitsPage{
  reading: Meter[];
  clientReferenceNumber:any;
  constructor(public navCtrl: NavController,public params:NavParams,private getUnitsProvider: GetUnitsProvider) {
    this.clientReferenceNumber = params.get("clientMeterNumber");
    getUnitsProvider.loadUnitsBalance(this.clientReferenceNumber).subscribe(reading => {
     console.log(reading);
     this.reading=reading; 
    });
  }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-04 07:26:43

为您服务:

代码语言:javascript
运行
复制
constructor(public http: Http) {
  Observable.interval(30 * 60 * 1000)
            .switchMap(this.http.get(`...`))
            .map(res => res.json())
            .subscribe(res => this.check(res))
}

private check(res: <Meter[]>) {
  // check whether to notify the user
}

然后在模块中使用它(您不需要在任何地方注入服务):

代码语言:javascript
运行
复制
providers: [
    {
        provide: APP_INITIALIZER,
        use: GetUnitsProvider,
        deps: [Http],
        multi: true
    }
],
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42593227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档