gpt4 book ai didi

javascript - 包装回调 API 并监听错误?

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:25 26 4
gpt4 key购买 nike

我正在包装一个回调 API,如下所示:

    export function process(data: string): Observable<Result> {
return Observable.create((observer: Observer<Result>) => {
call(data, result => {
if (result.errors) {
observer.error(result.errors);
}
else {
observer.next(result);
}
observer.complete();
},
});
});
}

我希望能够调用:

process(data).subscribe(data=>doStuffWithData).catch(e=>performErrorHandling);

I've been reading through the documentation on catchError .

示例的结尾如下:

//output: 'I caught: This is an error'
const subscribe = example.subscribe(val => console.log(val));

所以现在看起来我们在订阅时要么得到结果,要么得到错误。是否可以通过以下方式将值与错误分开:

process.subscribe(data=>doStuffWithData).catch(e=>performErrorHandling);

最佳答案

看起来错误处理程序作为第二个参数传递以立即订阅 (subscribe(v=>{...}, e=>handleTheError):

result.subscribe(v=>console.log(v), error=>console.log(error));

有关更多信息,请参阅rxjs-error-handling来自 Angular 大学。

这是他们的 HTTP 示例:

http$.subscribe(
res => console.log('HTTP response', res),
err => console.log('HTTP Error', err),
() => console.log('HTTP request completed.')
);

使用catchError当您想要发出替代后备值时的运算符。

关于javascript - 包装回调 API 并监听错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136749/

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