🔄
【Flutter/Dart】retryパッケージでシンプルにリトライコードを書く
例外をキャッチした時に同じ処理をリトライしたい場合、retryパッケージが便利です。
サーバー側からの応答を受け取る系の処理にピッタリかも。
例えば、リトライを上記のパッケージ無しで実装するとこんな感じだけど、
const maxAttempts = 5;
const interval = Duration(milliseconds: 100);
int attempts = 0;
while(true) {
attempts++;
try{
bool res = trySomething();
if(res) break;
}
catch (e) {
if(attempts >= maxAttempts) {
break;
}
sleep(interval);
}
}
Retryパッケージを使うとこんな感じに
const maxAttempts = 5;
const interval = Duration(milliseconds: 100);
retry(
() {
trySomething();
},
maxAttempts: maxAttempts,
delayFactor: interval,
);
retryIf
引数を使って、リトライする例外の種類を絞ることもできます。
シンプルで便利なパッケージです。
Discussion