RxJSを再試行してから、catchErrorが機能しない

SimonBarker

私は観察可能なものを持っています:

public updateThingName(name: string, thingId: number): Observable<any> {
    console.log('attempting rename');
    return this.http
        .put(
          `${this.thingApi}/projects/${thingId}`, 
          { name },
          this.options,
      ).pipe(
          map(response => response.data.id)
      );
}

より長いチェーンの一部として呼び出されます:

    return this.projectService.getProject(id).pipe(
            switchMap(prevProjectData => {
                return this.projectService.updateProject(id, data).pipe(
                    map(newProjectData => ({prevProjectData, newProjectData}))
                )
            }),
            switchMap(({prevProjectData, newProjectData}) => {
                return this.thingService.updateThingName(newProjectData.title, newProjectData.thingId)
                  .pipe(retry(5),catchError(err => {
                      return this.projectService.revertProjectUpdate(err, prevProjectData);
                }))
            }),
            tap(() => { ... save to logs only when successful ... })
        );

何かの名前を変更しようとします。失敗した場合は5回再試行し、それでも失敗した場合はエラーをキャッチし、以前の変更を元に戻し、元に戻す関数で最後のエラーをスローします。エラー応答を元に戻してフロントエンドに送り返すことは問題なく機能しますが、どこに置いてretry(5)console.log('attempting rename');、ログにはイニシャルしか表示されません

再試行を使用できませんか?これを機能させるにはどうすればよいですか?

これはNestJSのバックエンドコードであるため、違いが生じる場合は、最終的なサブスクライブの側面を直接処理しません。

ありがとう!

マーティン

それは正しいはずです。メソッドは1回呼び出されましたが、複数回再サブスクライブしようとします。サブスクライブごとにメッセージをログに記録すると、それを確認できるはずです。

public updateThingName(name: string, thingId: number): Observable<any> {
  return defer(() => {
    console.log('attempting rename');
    return this.http
      .put(
        `${this.thingApi}/projects/${thingId}`, 
        { name },
        this.options,
    ).pipe(
        map(response => response.data.id)
    );
  )};
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

再試行機能が3カウントを超えて機能しない

分類Dev

SpringBatchで再試行機能が機能しない

分類Dev

karatedslの再試行機能が機能していません

分類Dev

bigqueryで更新を再試行しても機能しないようです

分類Dev

Firebaseキュー-再試行が機能していませんか?

分類Dev

RestControllerでSpringの再試行が機能しない

分類Dev

WorkManagerの再試行が機能しない

分類Dev

Spring Integration + SQS-例外での再試行が機能しない

分類Dev

リボン再試行構成が機能しない

分類Dev

RxJS Observable:countを使用してから、notifierを使用して再試行します

分類Dev

sudo を使用して再試行すると、なぜ pip のキャッシュが機能しないのですか?

分類Dev

Xamarin Essentialsジオロケーションが機能していない、GetLocationAsyncが試行から外れる

分類Dev

RxJs:Observableからの値を待機します。指定された期間が経過しても値が来ない場合は、nがthrowErrorを試行した後、いくつかの処理を実行して再度待機します。

分類Dev

接続切断が機能しない場合は再試行してください

分類Dev

process.phpが機能しない、何度も試行してオンラインで検索したにもかかわらず、理由がわからない

分類Dev

観察可能なコレクションがアイテムを1回だけ削除し、再試行しても機能しない-Windows Phone 8-C#

分類Dev

pipが機能しない、TTPSConnectionPool(host = 'pypi.org'、port = 443):最大再試行回数を超えました

分類Dev

Surefireが失敗したテストを再実行して機能しない

分類Dev

@ Font-何を試しても顔が機能しない

分類Dev

RXJSオブザーバーは機能ではなく再試行します

分類Dev

SwiftからAppleScriptを実行しても機能しない

分類Dev

PHP-結果が得られない場合は、待ってから再試行してください

分類Dev

いくつかのhttp要求を(再試行機能を使用して)並行して呼び出し、それらがすべて終了するまで待つ方法は?

分類Dev

AsyncHttpClientを使用して不正なhttpコードに再試行機能を実装するにはどうすればよいですか?

分類Dev

adbからの最初の試行後、完了したブートが機能していません

分類Dev

Windows8.1から8.1Proへのアップグレードは、「このキーは機能しません。確認して再試行するか、別のキーを試してください」で失敗します。

分類Dev

iOS用のGoogle_analyticsの追加が機能していない多くの方法を試しましたか?

分類Dev

go runで機能しているパスがgo installで機能していない/ binから実行可能ファイルを呼び出している

分類Dev

これらすべての回避策を試しても、Gnome3が機能しないのはなぜですか?

Related 関連記事

  1. 1

    再試行機能が3カウントを超えて機能しない

  2. 2

    SpringBatchで再試行機能が機能しない

  3. 3

    karatedslの再試行機能が機能していません

  4. 4

    bigqueryで更新を再試行しても機能しないようです

  5. 5

    Firebaseキュー-再試行が機能していませんか?

  6. 6

    RestControllerでSpringの再試行が機能しない

  7. 7

    WorkManagerの再試行が機能しない

  8. 8

    Spring Integration + SQS-例外での再試行が機能しない

  9. 9

    リボン再試行構成が機能しない

  10. 10

    RxJS Observable:countを使用してから、notifierを使用して再試行します

  11. 11

    sudo を使用して再試行すると、なぜ pip のキャッシュが機能しないのですか?

  12. 12

    Xamarin Essentialsジオロケーションが機能していない、GetLocationAsyncが試行から外れる

  13. 13

    RxJs:Observableからの値を待機します。指定された期間が経過しても値が来ない場合は、nがthrowErrorを試行した後、いくつかの処理を実行して再度待機します。

  14. 14

    接続切断が機能しない場合は再試行してください

  15. 15

    process.phpが機能しない、何度も試行してオンラインで検索したにもかかわらず、理由がわからない

  16. 16

    観察可能なコレクションがアイテムを1回だけ削除し、再試行しても機能しない-Windows Phone 8-C#

  17. 17

    pipが機能しない、TTPSConnectionPool(host = 'pypi.org'、port = 443):最大再試行回数を超えました

  18. 18

    Surefireが失敗したテストを再実行して機能しない

  19. 19

    @ Font-何を試しても顔が機能しない

  20. 20

    RXJSオブザーバーは機能ではなく再試行します

  21. 21

    SwiftからAppleScriptを実行しても機能しない

  22. 22

    PHP-結果が得られない場合は、待ってから再試行してください

  23. 23

    いくつかのhttp要求を(再試行機能を使用して)並行して呼び出し、それらがすべて終了するまで待つ方法は?

  24. 24

    AsyncHttpClientを使用して不正なhttpコードに再試行機能を実装するにはどうすればよいですか?

  25. 25

    adbからの最初の試行後、完了したブートが機能していません

  26. 26

    Windows8.1から8.1Proへのアップグレードは、「このキーは機能しません。確認して再試行するか、別のキーを試してください」で失敗します。

  27. 27

    iOS用のGoogle_analyticsの追加が機能していない多くの方法を試しましたか?

  28. 28

    go runで機能しているパスがgo installで機能していない/ binから実行可能ファイルを呼び出している

  29. 29

    これらすべての回避策を試しても、Gnome3が機能しないのはなぜですか?

ホットタグ

アーカイブ