Promise与RxJS中Observable的区别
let promise = new Promise(resolve => {
setTimeout(() => {
resolve("---promise timeout---");
}, 2000);
});
promise.then(value => console.log(value));
let stream1$ = new Observable(observer => {
let timeout = setTimeout(() => {
observer.next("observable timeout");
}, 2000);
return () => {
clearTimeout(timeout);
}
});
let disposable = stream1$.subscribe(value => console.log(value));
setTimeout(() => {
disposable.unsubscribe();
}, 1000);
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));
stream2$
.pipe(
filter(val => val % 2 == 0)
)
.subscribe(value => console.log("filter>" + value));
stream2$
.pipe(
map(value => value * value)
)
.subscribe(value => console.log("map>" + value));
console.log("------------------------------------------------");