promise和Rxjs的一点区别
Posted 会飞的Tiger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise和Rxjs的一点区别相关的知识,希望对你有一定的参考价值。
promise 代码
let promise = new Promise( (resolve) => { setTimeout(() => { resolve(‘chen‘); },2000) }); promise.then((value) => { console.log(value); })
Rxjs代码
let start = new Observable( (observer) => { let timeOut = setTimeout( () => { observer.next(‘chen2‘); },4000) }) let str = start.subscribe( (value) => { console.log(value); })
区别1: rxjs可以取消subscribe,promise不可以
setTimeout( () => { str.unsubscribe(); },1000)
区别2: rxjs可以发射多次,promise只能发射一次
let setTime2; let start2 = new Observable( (observable) => { let count = 0; setTime2 = setInterval( () => { observable.next(count++); },1000) }) let str2 = start2.subscribe( (num) => { console.log(num); if(num > 10){ str2.unsubscribe(); clearInterval(setTime2); } })
区别3: rxjs 自带了许多的工具函数,如filter等
以上是关于promise和Rxjs的一点区别的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 rxjs 和 redux observable 实现 Promise 类型的场景?
我可以将 async/await Promises 与可观察的 RXJS 混合使用吗?
[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through(代码片段
[RxJS] Implement RxJS `switchMap` by Canceling Inner Subscriptions as Values are Passed Through(代码片段