我在RxJS 4中遇到过这个方法,看起来很有帮助,但是我似乎无法在RxJS 5中的任何地方找到它.
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/errors.md
有谁知道RxJS 5中是否有类似的行为?
你可以像这样为它添加一个polyfill。
\n\nfunction 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);\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |