RxJS ObservableにAngular2の文字列が含まれているかどうかを確認するにはどうすればよいですか?

デビッド

Angular2とObservableを初めて使用するので、getRolesタイプのObservableObservable<string[]>文字列が含まれているかどうかを確認したいと思います。

public hasRole(name: string): boolean {
    // getRoles is of type Observable<string[]>
    let getRoles = this.tokenService.getTokenInformation().map(element => element.roles);

    if (/* check if name is inside of getRoles */) {
        return true;
    }
    return false;
}
マーティン

オブザーバブルは非同期であるため、を使用することはできませんlet getRoles = ...map(...)このmap()メソッドは、配列ではなく、常に非同期のObservableで実行されます。

したがって、それを行う適切な方法は次のようになります(私はこのコードをテストしませんでした):

public hasRole(name: string): Observable {
    return this.tokenService.getTokenInformation()
        .map(element => element.roles)
        .first(roles => roles.indexOf(name) !== -1);
}

first()ソースが完了したときに一致する要素が見つからなかった場合(すべてのロールを繰り返した場合)、オペレーターはエラーを発行します。

次に、次のようなこの方法を使用します。

hasRole('my-role').subscribe(
    role => console.log("has role"),
    error => console.log("doesn't have role"),
)

編集:

これにより、すべてがtrueorfalseのみに変換されます。first()これらの引数は何ですか?演算子についてはドキュメントを参照してくださいそれから私はmap()すべてをブール値に強制的に変換していました。

public hasRole(name: string): Observable {
    return this.tokenService.getTokenInformation()
        .map(element => element.roles)
        .first(roles => roles.indexOf(name) !== -1, undefined, false)
        .map(val => !!val);
}

ライブの簡略化されたデモを参照してください:http//plnkr.co/edit/MtYfGLgqgHACPswFTVJ5

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

RxJSでObservableを完了するにはどうすればよいですか

分類Dev

RxJS SubjectまたはObservableの現在の値を取得するにはどうすればよいですか?

分類Dev

別のObservable内のObservableを解決するにはどうすればよいですか?-rxjs

分類Dev

RxJSまたはAngular2のObservablesのフィルターにサブスクライブを配置するにはどうすればよいですか?

分類Dev

RxJS Observableを特定の日時に発行するにはどうすればよいですか?

分類Dev

Angularでrxjsを使用して入力プロパティを確認するにはどうすればよいですか?

分類Dev

SystemJS / Angular2を使用してrxjsを介してRx.Scheduler.immediateにアクセスするにはどうすればよいですか?

分類Dev

Angular / RxJsで、1つのバンドルに複数のリクエスト(http:// test / 1、http:// test / 2など)が含まれるようにhttpリクエストをバンドルするにはどうすればよいですか?

分類Dev

Angular 2でRxJSサブジェクトを作成するにはどうすればよいですか?

分類Dev

RXJS Observableストリームを等しいNサイズの配列に分割するにはどうすればよいですか?

分類Dev

RXJSで、retryWhenを使用してbindNodeCallbackで作成されたObservableの再実行を強制するにはどうすればよいですか?

分類Dev

RXJSで、retryWhenを使用してbindNodeCallbackで作成されたObservableの再実行を強制するにはどうすればよいですか?

分類Dev

RxJS 5 observableから退会するにはどうすればよいですか?

分類Dev

Angular、RxJs 6、およびInMemoryAPIを使用して、複数の監視可能なソースにネストされているように見える、返されたObservable値を取得するにはどうすればよいですか?

分類Dev

2つのAPI呼び出しを必要とするAngular / rxjsにオブジェクトをロードするにはどうすればよいですか?

分類Dev

RXJSで遅延のある値を出力するにはどうすればよいですか?

分類Dev

RxJSを使用してrequestAnimationFrameループを生成するにはどうすればよいですか?

分類Dev

RxJSを使用して「ユーザーが入力しています」インジケーターを表示するにはどうすればよいですか?

分類Dev

RxjsのReplaySubjectの一部の要素を削除するにはどうすればよいですか?

分類Dev

rxjsで既存のストリームを並べ替えるにはどうすればよいですか?

分類Dev

RxJSを使用してAngularサービスで複数のAPI呼び出しを処理するにはどうすればよいですか?

分類Dev

Angular 9でrxjsを使用して、サービス呼び出しのフローを制御するにはどうすればよいですか?

分類Dev

RXJS 5.5.6からfromEvent関数をモックするにはどうすればよいですか?

分類Dev

RxJs | `mergeMap`を前の内部オブザーバブルが完了する瞬間まで遅らせるにはどうすればよいですか?

分類Dev

RxJSを使用して複数のHTTP呼び出しを並列化するにはどうすればよいですか

分類Dev

Angular2またはRxJSの条件で監視可能な間隔をサブスクライブ解除または破棄するにはどうすればよいですか?

分類Dev

RxJSオブザーバブルを順番に使用するにはどうすればよいですか?

分類Dev

rxfireとrxjsを使用して2つのFirestoreクエリを結合するにはどうすればよいですか(ORクエリ)

分類Dev

rxjsを使用しているときにエラーのスタックトレースを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    RxJSでObservableを完了するにはどうすればよいですか

  2. 2

    RxJS SubjectまたはObservableの現在の値を取得するにはどうすればよいですか?

  3. 3

    別のObservable内のObservableを解決するにはどうすればよいですか?-rxjs

  4. 4

    RxJSまたはAngular2のObservablesのフィルターにサブスクライブを配置するにはどうすればよいですか?

  5. 5

    RxJS Observableを特定の日時に発行するにはどうすればよいですか?

  6. 6

    Angularでrxjsを使用して入力プロパティを確認するにはどうすればよいですか?

  7. 7

    SystemJS / Angular2を使用してrxjsを介してRx.Scheduler.immediateにアクセスするにはどうすればよいですか?

  8. 8

    Angular / RxJsで、1つのバンドルに複数のリクエスト(http:// test / 1、http:// test / 2など)が含まれるようにhttpリクエストをバンドルするにはどうすればよいですか?

  9. 9

    Angular 2でRxJSサブジェクトを作成するにはどうすればよいですか?

  10. 10

    RXJS Observableストリームを等しいNサイズの配列に分割するにはどうすればよいですか?

  11. 11

    RXJSで、retryWhenを使用してbindNodeCallbackで作成されたObservableの再実行を強制するにはどうすればよいですか?

  12. 12

    RXJSで、retryWhenを使用してbindNodeCallbackで作成されたObservableの再実行を強制するにはどうすればよいですか?

  13. 13

    RxJS 5 observableから退会するにはどうすればよいですか?

  14. 14

    Angular、RxJs 6、およびInMemoryAPIを使用して、複数の監視可能なソースにネストされているように見える、返されたObservable値を取得するにはどうすればよいですか?

  15. 15

    2つのAPI呼び出しを必要とするAngular / rxjsにオブジェクトをロードするにはどうすればよいですか?

  16. 16

    RXJSで遅延のある値を出力するにはどうすればよいですか?

  17. 17

    RxJSを使用してrequestAnimationFrameループを生成するにはどうすればよいですか?

  18. 18

    RxJSを使用して「ユーザーが入力しています」インジケーターを表示するにはどうすればよいですか?

  19. 19

    RxjsのReplaySubjectの一部の要素を削除するにはどうすればよいですか?

  20. 20

    rxjsで既存のストリームを並べ替えるにはどうすればよいですか?

  21. 21

    RxJSを使用してAngularサービスで複数のAPI呼び出しを処理するにはどうすればよいですか?

  22. 22

    Angular 9でrxjsを使用して、サービス呼び出しのフローを制御するにはどうすればよいですか?

  23. 23

    RXJS 5.5.6からfromEvent関数をモックするにはどうすればよいですか?

  24. 24

    RxJs | `mergeMap`を前の内部オブザーバブルが完了する瞬間まで遅らせるにはどうすればよいですか?

  25. 25

    RxJSを使用して複数のHTTP呼び出しを並列化するにはどうすればよいですか

  26. 26

    Angular2またはRxJSの条件で監視可能な間隔をサブスクライブ解除または破棄するにはどうすればよいですか?

  27. 27

    RxJSオブザーバブルを順番に使用するにはどうすればよいですか?

  28. 28

    rxfireとrxjsを使用して2つのFirestoreクエリを結合するにはどうすればよいですか(ORクエリ)

  29. 29

    rxjsを使用しているときにエラーのスタックトレースを取得するにはどうすればよいですか?

ホットタグ

アーカイブ