typescript 重试时重试逻辑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 重试时重试逻辑相关的知识,希望对你有一定的参考价值。
import { Observable } from "rxjs";
let output = document.getElementById("output");
let button = document.getElementById("button");
let click = Observable.fromEvent(button, "click");
function load(url: string) {
return Observable.create(observer => {
let xhr = new XMLHttpRequest();
xhr.addEventListener("load", () => {
if (xhr.status === 200) {
let data = JSON.parse(xhr.responseText);
observer.next(data);
observer.complete();
} else {
observer.error(xhr.statusText);
}
});
xhr.open("GET", url);
xhr.send();
}).retryWhen(retryStrategy({ attempts: 3, delay: 1500 }));
}
function retryStrategy({attempts=4,delay=1000}) {
return function (errors) {
return errors
.scan((acc, value) => {
console.log(acc, value);
return acc + 1;
}, 0)
.takeWhile(acc => acc < attempts)
.delay(delay);
}
}
function renderMovies(movies) {
movies.forEach(m => {
let div = document.createElement("div");
div.innerHTML = m.title;
output.appendChild(div);
});
}
click.flatMap(e => load("moviess.json"))
.subscribe(
renderMovies,
e => console.log(e),
() => console.log("complete")
);
以上是关于typescript 重试时重试逻辑的主要内容,如果未能解决你的问题,请参考以下文章
Polly 在重试时更改查询字符串
重试时客户端连接未正确关闭
空手道:有没有办法在使用重试时禁用日志?
Symfony Messenger:是不是可以在最后一次重试时不抛出异常?
(403) 放置时出现禁止错误,但重试时成功
Spring Data:重试时回滚事务