Javascript 如何在catchError操作符中测试投掷者返回的可观测值?

Javascript 如何在catchError操作符中测试投掷者返回的可观测值?,javascript,rxjs,jasmine,Javascript,Rxjs,Jasmine,我有一个函数,它将操作符添加到命令分派返回的可观察对象中。我添加了catchError,它将捕获的错误转换为我的一种错误类型。Source observable在函数内部订阅,外部不可见。功能运行良好,但我在为此编写单元测试时遇到了问题,因为函数中的代码是异步的,但异步代码的执行在函数范围之外是不可见的 doStuff(){ dispatch('MyCommand',{data:data}).pipe( catchError(错误=>throwError(新的MyError()), 最后(),

我有一个函数,它将操作符添加到命令分派返回的可观察对象中。我添加了
catchError
,它将捕获的错误转换为我的一种错误类型。Source observable在函数内部订阅,外部不可见。功能运行良好,但我在为此编写单元测试时遇到了问题,因为函数中的代码是异步的,但异步代码的执行在函数范围之外是不可见的

doStuff(){
dispatch('MyCommand',{data:data}).pipe(
catchError(错误=>throwError(新的MyError()),
最后(),
轻触(结果数据=>{
processResultData(结果数据);
}),
).subscribe();

}
尝试更改doStuff函数,如下所示:

doStuff() {
        commandService.dispatch( 'MyCommand', { data: data }).pipe(
            catchError( error => throwError( new MyError())),
            last(),
            tap( resultData => {
                processResultData( resultData );
            }),
         ).subscribe(success => {
           // ... what happens on success, keep it blank
       }, error => {
         // ... what happens on error, keep it blank
       });
}
我认为在subscribe块中添加错误函数处理程序应该可以消除该错误(现在应该可以捕获错误)