gpt4 book ai didi

fromPromise 中的 RXJS 抛出错误未命中 'catchError' 管道方法

转载 作者:行者123 更新时间:2023-12-04 14:23:57 25 4
gpt4 key购买 nike

有人可以解释为什么这个 promise (runQuery) 在“catch”中失败并抛出 ErrorObservable,但没有在“catchError”方法中被捕获,而是进入“map”方法中。
(我尝试了两种 _throw/ErrorObservable 方法,结果相同)

import { _throw } from 'rxjs/observable/throw';
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';

const runQuery = ( Promise that rejects )

const source$ = fromPromise(
runQuery({ d: 'g' })
.catch(err => {
return new ErrorObservable(err);
//return _throw(err); -- same as above
})
)
.pipe(
map((response: any) => {
//ENTERS HERE as response.error
}),
catchError(e => {
//DOES NOT ENTER
})
);

最佳答案

您在 promise 中处理您自己的错误并让它返回一个 ErrorObservable。通过这样做,您使 promise 成功了(尽管有返回值之类的错误)。 fromPromise 会将其转换为发射而不是错误。

删除 fromPromise 中的 catch case,它应该命中 Observable.catchError

关于fromPromise 中的 RXJS 抛出错误未命中 'catchError' 管道方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49866345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com