首页 > 解决方案 > 完成之前的可观察对象后,如何强制 RxJs 处理我的可观察对象?

问题描述

我正在尝试按顺序运行 observables(当 firstObservableStream 完成时,然后处理 secondObservableStream)。这乳清我试图模仿一些异步的东西。例如删除旧图像 --> 上传新图像 ---> 订阅输出等等。

我有一个简短的示例代码:

import { Observable, of } from 'rxjs';
import { merge, concat } from 'rxjs/operators';

const emmit$ = Observable.create(function(observer) {
  setTimeout( ()=> observer.next('emmit #1'), 40);
  setTimeout( ()=> observer.next('emmit #2'), 5000);
});

const process$ = Observable.create(function(observer) {
  setTimeout( ()=> observer.next('process #1'), 2500);
  setTimeout( ()=> observer.next('process #2'), 400);
});

const combined$ =  emmit$.pipe(concat(process$));
combined$.subscribe( (val) =>{
  console.log(val);
});

我期望的输出:emmit#1 --> emmit#2 --> process#1 --> process#2

真正的输出是:emmit#1 --> emmit#2

就像 $process 根本不参与顺序一样

标签: rxjs

解决方案


推荐阅读