Angular 003 组件注入自定义服务-实现异步处理
服务AsyncService,用timeout来模拟异包装异步方法
import {
Injectable } from '@angular/core';
import {
Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class AsyncService {
constructor() {
}
// 同步方法
getData(input:string){
return input;
}
// 使用callback的方式接收异步处理结果
getDataAsyncByCallback(input:string, callback:any, timeout:number=1000) {
setTimeout(() => {
var result=`data=${
input}, timeout=${
timeout}`;
return callback(result);
}, timeout);
}
// 使用Promise接收异步处理结果
getDataAsyncByPromise(input:string, timeout:number=1000) : Promise<string> {
var promise = new Promise<string>((resolve) => {
setTimeout(() => {
var result:string =`data=${
input}, timeout=${
timeout}`;
resolve(result);
}, timeout);