Angular2的Promise和Observable访问接口模式

此两者区别,不在赘述:详情见
blog.csdn.net/u010130282/…

下面将项目中运用的方式分享给大家:

1.promise的访问模式

文件:auth.service.ts
 //需要导入的文件
 import "rxjs/add/operator/toPromise";
 /**
 * post请求
 * @param url 请求地址
 * @param body 请求参数
 */
authPost(url: string, body: any): Promise<RequestResult> {
    let headers = this.initAuthHeaders();
    this.spinService.spin(true);
    return this.http.post(
        url,
        AuthService.buildURLSearchParams(body),
        { headers: headers }
    ).toPromise()
        .then(response => {
            let result = response.json() as RequestResult;
            this.spinService.spin(false);
            return result;
        }
        )
        .catch(this.handleError);
}

文件:xx.service.ts
/**
 * 连锁管理:查询总数
 * @param param 
 */
countChain(param: any): Promise<RequestResult> {
    let URL = environment.appmPlusApi + "chain/getChainListCount";
    return this.service.authPost(URL, param).then(result => { return result; })
}

文件:xx.component.ts
//查询总数
searchCount() {
    this.chainService.countChain(this.param).then(result => {
      let data = result as any;
      if (data.code == 0) {
        this.options.total = data['data'];
      }
    });
}复制代码

2.observable的访问模式

文件:auth.service.ts
 //需要导入的文件
 import { Observable } from 'rxjs/Observable';
 /**
 * observable模式请求
 * @param url 
 * @param body 
 */
httpClient(url: string, body: any): Observable<RequestResult> {
    let headers = this.initAuthHeaders();
    this.spinService.spin(true);
    return this.http.post(
        url,
        AuthService.buildURLSearchParams(body),
        { headers: headers }
    ).map(response => {
        let result = response.json() as RequestResult;
        this.spinService.spin(false);
        return result;
    })
}

文件:xx.service.ts
/**
 * 连锁管理:分页查询
 * @param param 
 */
 listChain(param: any): Observable<RequestResult> {
    let URL = environment.appmPlusApi + "chain/getChainList";
    return this.service.tt(URL, param).map(result => { return result; })
}

文件:xx.component.ts
//分页查询
searchList() {
    let param = { page: this.page, rows: this.rows, cnName: this.param.cnName };
    this.chainService.listChain(param).subscribe(result => {
    let data = result as any;
      if (data.code == 0) {
        this.dataList = data['data'];
      }
    });
}复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值