此两者区别,不在赘述:详情见
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'];
}
});
}复制代码