gpt4 book ai didi

error-handling - 一旦HTTP请求返回特定值,rxjs就会引发错误

转载 作者:行者123 更新时间:2023-12-03 07:40:48 25 4
gpt4 key购买 nike

我确实编写了一个Observable,它轮询一个URL,一旦返回特定值,该URL将完成。

private checkPairingStatus(paringModel: any): Observable<ResponseObject> {
let data = { id: 1234 };
return Observable
.interval(2000)
.switchMap(() => this.get<ResponseObject>('http://api/getstatus', data))
.first(r => r.Status === 'success') // once our pairing is active we emit that
.timeout(90000, Observable.throw(new Error('Timeout ocurred')));
// todo: find a way to abort the interval once the PairingStatus hits the 'canceled' status.
}

这工作得很好,但是例如我的响应达到以下状态“r.Status ==='已取消'”时,我正在努力如何引发异常。

感谢您对此的任何提示!

问候
卢卡斯

最佳答案

您可以只使用do()并以所需的任何条件抛出Error:

return Observable
.interval(200)
.do(val => {
if (val == 5) {
throw new Error('everything is broken');
}
})
.subscribe(
val => console.log(val),
err => console.log('Error:', err.message)
);

打印到控制台:
0
1
2
3
4
Error: everything is broken

在您的情况下,您将要测试诸如 r.Status === 'canceled'之类的条件。

关于error-handling - 一旦HTTP请求返回特定值,rxjs就会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41432616/

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