//对一个对象进行观察处理结束后在执行一些方法。
var subscription = Observable.from([1,2,3,4])//可观察者对象 Observerable(l流)
.filter((e)=>e%2 == 0)//对数据进行一些处理
.map((e)=>e*e)//对数据进行一些处理
.subscribe(//订阅Subscription
e=>console.log(e),//观察者Observer 可以处理流中发射出来的元素
err=>console.error(error),//观察者Observer 可以处理流中的异常
()=>console.log("结束了 !")//观察者Observer 可以在流结束的时候被调用
//后边的这两个观察者不是必须的可以去掉
);
//这就是一个最简单的响应式编程,也是一个观察者模式,根据不同的结果进行不同的响应返回
操作符Operators:纯粹的函数,是开发者可以以函数编程的方式处理结合。
响应式表单需要引入ReactiveFormsModule模块
<!--html-->
<!--绑定搜索表单流-->
<input type="text" placeholder="输入内容" [formControl]="searchInput">
<!--ts-->
import {Component, OnInit} from '@angular/core';
import {FormControl} from "@angular/forms";
@Component({ ...})
export class SearchComponent implements OnInit {
<!--定义了一个表单流-->
searchInput: FormControl = new FormControl();
constructor() {
<!--观察者模式,当该流的值改变时进行处理-->
this.searchInput.valueChanges
.debounceTime(3000)//等待3秒之后在执行下边的观察者
.subscribe(stockCode => this.getStockInfo(stockCode));
}
getStockInfo(stockCode:string) {
console.log(`获取${stockCode}的股票信息`);
}
}
<!--这就实现了当按键事件结束3000毫秒后在执行观察者的需求-->
因篇幅问题不能全部显示,请点此查看更多更全内容