gpt4 book ai didi

javascript - Rxjs:重试 promise ?

转载 作者:行者123 更新时间:2023-11-30 15:33:52 28 4
gpt4 key购买 nike

想知道为什么我的 promise 正在解决但试图重试。

var getResultsStream = url => Rx.Observable.onErrorResumeNext( 
Rx.Observable.defer( () => Rx.Observable
.fromPromise( getSearchResults(url)
.catch(error => Rx.Observable.of(`Error: ${error}`)) )
.timeout(20000, new Error(`Timeout: ${url}`))
)
.do( e => console.log(`Retrying: ${url}`))
.retry(3)
)

重试 promise 3 次是更好的方法吗?

最佳答案

除非您对 defer 和/或 onErrorResumeNext 有特殊用途,否则您可以将其全部丢弃并简单地使用:

const request = url => Rx.Observable.of(url)
.do(url => console.log("requesting: " + url))
.switchMap(url => Rx.Observable.fromPromise(getSearchResults(url)))
.timeout(20000, new Error(`Timeout: ${url}`))
.retry(3);

request("http://foobar.com").subscribe(console.log, console.error);

function getSearchResults(url) {
// simulating request-error
throw new Error("Could not reach: " + url);
}
<script src="https://npmcdn.com/@reactivex/rxjs@5.0.0-beta.10/dist/global/Rx.umd.js"></script>

关于javascript - Rxjs:重试 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41876379/

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