RxJS 5中不存在"mergeDelayError"

sch*_*ode 5 rxjs rxjs5

我在RxJS 4中遇到过这个方法,看起来很有帮助,但是我似乎无法在RxJS 5中的任何地方找到它.

https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/errors.md

有谁知道RxJS 5中是否有类似的行为?

sat*_*ime 0

你可以像这样为它添加一个polyfill。

\n\n
function mergeDelayError(...sources: Array<Observable<any>>) {\n    const final = new Subject();\n    const catching = sources.map(obs => obs.pipe(\n        catchError(e => {\n            if (!final.hasError) {\n                final.error(e);\n            }\n            return EMPTY;\n        }),\n    ));\n\n    return concat(merge(...catching), final);\n}\n\nconst o1$ = interval(150).pipe(take(5));\nconst o2$ = throwError(new Error(\'woops1\'));\nconst o3$ = throwError(new Error(\'woops2\'));\n\nmergeDelayError(o1$, o2$, o3$).subscribe(\n    x => console.log(\'next:\', x),\n    e => console.log(\'error:\', e),\n    () => console.log(\'completed\'),\n);\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出是

\n\n
[Log] next: \xe2\x80\x93 0\n[Log] next: \xe2\x80\x93 1\n[Log] next: \xe2\x80\x93 2\n[Log] next: \xe2\x80\x93 3\n[Log] next: \xe2\x80\x93 4\n[Log] error: \xe2\x80\x93 Error: woops1\n
Run Code Online (Sandbox Code Playgroud)\n