RxJSでretryWhenを使おうとしたときに’retryWhen’ is deprecated.
今回はRxJSでretryWhenを使おうとしたときに「’retryWhen’ is deprecated.」というエラーが出たときの原因と対処法についてご紹介していきます。
RxJSのバージョンは7.8.0です。
RxJSでretryWhenを使おうとしたときに’retryWhen’ is deprecated.
結論からまず言うとRxJSのバージョンアップにより、retryWhenが非推奨(deprecated)となりました。
retryWhenの代わりにretryのカスタムロジックを提供できるように新しい手法が導入されております。
retryWhenはエラーが発生した場合に再試行のタイミングをカスタマイズするものですが、RxJSのバージョンによってはretryとdelayを使って書くことも可能です。
以下はコード例となります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import { of, timer } from 'rxjs'; import { ajax } from 'rxjs/ajax'; import { retry, catchError, delay } from 'rxjs/operators'; const apiRequest$ = ajax('https://jsonplaceholder.typicode.com/posts/1'); // ダミーAPIを使用 apiRequest$ .pipe( retry({ count: 2, // 最大2回まで再試行 delay: (error, retryCount) => { console.log(`Retrying... Attempt: ${retryCount}`); return timer(2000); // 2秒待って再試行 } }), catchError(err => { console.error('API Error:', err); return of({ data: [] }); // 空のデータを返す }) ) .subscribe(response => console.log('API Response:', response)); |
終わりに
今回はRxJSでretryWhenを使おうとしたときに「’retryWhen’ is deprecated.」というエラーが出たときの原因と対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません