Angular响应式编程RxJS

作者: dravenxiaokai | 来源:发表于2018-03-13 10:09 被阅读0次

Promise

主要功能,解决了回调地狱的问题

类比Promise和RxJS

//以下是promise的写法
let promise = new Promise(resolve => {
  setTimeout(() => {
    resolve('-----promise timeout------')
  },2000)
})
promsie.then(value => console.log(value))
//以下是Observable写法
let stream1$ = new Observable(observable => {
  let timeout = setTimeout(() => {
    observable.next('observable timeout')
  },2000);
  return () => {
    clearTimeout(timeout);
  }
});
let disposable = stream1$.subscribe(value => console.log(value))
//第一个核心不同点:Observable是可以中途取消的,而Promise不可以
setTimeout(() => {
  disposable.unsubscribe();
},1000);
//第二个核心不同点:Observable可以持续发射很多值,而Promise只能兑现一次
let stream2$ = new Observable<number>(observer => {
  let count = 0;
  let interval = setInterval(() => {
    observer.next(count++);
  },1000);
  return () => {
    clearInterval(interval);
  };
});
stream2$.subscribe(value => console.log('Observable>'+value));
//第三个核心不同点:Observable提供了很多工具函数
stream2$
  .filter(val=>val%2==0)
  .subscribe(value => console.log('filter>)'+value);
stream2$
  .map(value => value * value)
  .subscribe(value => console.log('map>'+value));

debounceTime

public searchTextStream:Subject<string> = new Subject<string>();
this.searchTextStream
  .debounceTime(500)  //500ms没有按键,发送请求
  .distinctUntilChanged()  //有按键,内容没有变化,类似于Ctrl键等不发送请求
  .subscribe(searchText => {
    console.log(this.searchText);
    this.loadData(this.searchText);
  });

GitBook资源推荐

相关文章

  • 响应式编程

    响应式编程 可观察对象Angular集成了 参考:Rxjs,它使用 Observable 对象来创建流,主要是用于...

  • Angular响应式编程RxJS

    Promise 主要功能,解决了回调地狱的问题 类比Promise和RxJS debounceTime GitBo...

  • 01RxJS-响应式编程类库

    rxjs-响应式编程类库)RxJS官网[https://rxjs.dev/] RxJS(Reactive Exte...

  • Rxjs

    响应式编程简介 Rxjs概念 Rxjs全称Reactive Extension for JavaScript,Ja...

  • Angular表单验证

    angular4里一个响应式编程的小例子 Angular2 响应式表单验证 Angular开发(十一)-关于响应式...

  • RxJS 用法(操作符)总结

    RxJS 用法总结 本博客只总结了常用的部分RxJS方法, RxJS可能会让你对响应式编程产生新的理解。RxJS ...

  • rxjs

    RxJS 用法总结 本博客只总结了常用的部分RxJS方法, RxJS可能会让你对响应式编程产生新的理解。RxJS ...

  • 介绍RxJS在Angular中的应用

    RxJS是一种针对异步数据流编程工具,或者叫响应式扩展编程;可不管如何解释RxJS其目标就是异步编程,Angula...

  • Rxjs响应式编程

    关于Rxjs的现状 鉴于响应式编程近几年才开始真正流行,而且响应式的理念也并不是在所有领域都深得人心,对于不是特别...

  • 14.《Angular响应式表单》

    一、使用响应式表单 Angular 的响应式表单能让实现响应式编程风格更容易,这种编程风格更倾向于在非 UI 的数...

网友评论

    本文标题:Angular响应式编程RxJS

    本文链接:https://www.haomeiwen.com/subject/famafftx.html