【发布时间】:2016-12-23 15:32:41
【问题描述】:
我在使 RxJS5 可观察流以我希望的方式运行时遇到问题。
该流应该使用 axios 向网站发送 HTTP 请求,如果响应是 HTTP 错误(axios 强制为 JavaScript 错误),则可观察序列应等待 10 毫秒,然后尝试重新发送请求(出于某种原因,当您立即重试发送请求并不断抛出错误时,我向其发送请求的网站不喜欢它,但大多数情况下表现良好,延迟 10 毫秒。
Rx.Observable
.fromPromise(axios('http://example.com/12345'))
.map(x => new Promise((resolve, reject) => {
setTimeout(() => {
resolve(x)
}, 2000)
}))
.debounceTime(2000)
.do(console.log)
.retry(10)
.subscribe(console.log, console.error)
我有一个关于 Codepen 的示例,其中做了一些更改,以便更清楚地了解流的工作原理:http://codepen.io/leakyabstractions/pen/pNmvyZ?editors=0010
我尝试使用.delay()、.debounceTime()、.timer()、.timeInterval() 和.timeout() 代替.map() 运算符,但没有任何效果(包括.map())。我做错了什么?
【问题讨论】:
标签: javascript reactive-programming rxjs5 reactive-extensions-js reactive