一 delay操作符
源Observable延迟指定时间,再开始发射值。
import { Component, OnInit } from '@angular/core';
import { of } from 'rxjs/observable/of';
import { delay } from 'rxjs/operators/delay';
@Component({
selector: 'app-util',
templateUrl: './util.component.html',
styleUrls: ['./util.component.css']
})
export class UtilComponent implements OnInit {
constructor() { }
ngOnInit() {
console.log( new Date() );
of('Mike', 'Leo').pipe( delay(1000) )
.subscribe(val => {
console.log(new Date(), val);
});
}
}
二 do/tap操作符
do、tap ( 窃听 ) 是两个完全相同的操作符,用于窃听Observable的生命周期事件,而不会产生打扰。
import { Component, OnInit } from '@angular/core';
import { of } from 'rxjs/observable/of';
import { tap } from 'rxjs/operators/tap';
@Component({
selector: 'app-util',
templateUrl: './util.component.html',
styleUrls: ['./util.component.css']
})
export class UtilComponent implements OnInit {
constructor() { }
ngOnInit() {
// tap在subscribe之前执行
of('Mikey', 'Leo').pipe(
tap( val => {
console.log('tap next', val);
},
null,
() => {
console.log('tap complete');
} )
)
.subscribe(
val => {
console.log('subscribe next', val);
},
null,
() => {
console.log('subscribe complete');
} );
// 没有订阅,tap不执行
of('Raph', 'Don').pipe(
tap(
val => {
console.log('tap next', val);
},
null,
() => {
console.log('tap complete');
}
)
);
}
}