rxjs工具操作符

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 01:30   33   0

一 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');

}

)

);

}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP