オブザーバブルを強制的に順番に実行するにはどうすればよいですか?

Haoliang Yu:

私は約束の世界から観察可能な世界へと移動しています。私が通常Promiseで行うことの1つは、一連のタスクをチェーンして、それらを順番に実行させることです。たとえば、3つのタスクprintLog1()があります。1をコンソールに出力し、printLog23()2と3をコンソールに出力し、printLog4()4を出力します。

1-2-3-4を印刷したいときは、次のようなプロミスチェーンを作成します

printLog1()
  .then(() => {
    printLog23();
  })
  .then(() => {
    printLog4();
  });

今、私が観察可能と同じ機能をしたいと私は書き換えることができるprintLog()観察可能なように関数を

printLog1 = Rx.Observabale.of(1).map((i) => console.log(i));
printLog23 = Rx.Observabale.of(2, 3).map((i) => console.log(i));
printLog4 = Rx.Observabale.of(4).map((i) => console.log(i));

次に、コンソールに異なる値を出力する3つのオブザーバブルがあります。これらの3つのオブザーバブルが順番に実行されて出力されるように、それらをチェーンするにはどうすればよい1-2-3-4ですか?

マーティン:

放出の順序が、使用できるソースObservable concatまたはconcatMap演算子を指定した順序と同じであることを確認したい場合

concat*演算子は(それは同様の約束と連携し、見るだけで、以前の観測が完了した後、観察可能に加入http://reactivex.io/rxjs/class/es6/MiscJSDoc.js~ObservableInputDoc.htmlを)。

あなたの場合、それは次のようになります:

import { concat } from 'rxjs'; // Note, concat from 'rxjs', is not the same as concat from 'rxjs/operators'

concat(printLog1, printLog23, printLog4);

...または、concatMap1つのPromiseのリクエストが前のPromiseからの応答に依存する場合:

printLog1.pipe(
  concatMap(response => ...),
  concatMap(response => ...),
);

...または順序が問題ではない場合は、mergeすべてのObservables / Promiseをすぐにサブスクライブし、それらが到着すると結果を再発行することができます

merge(printLog1, printLog23, printLog4);

2019年1月:RxJS 6用に更新

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

2つのオブザーバブルを順番に実行するにはどうすればよいですか?

分類Dev

2つのオブザーバブルを希望の順序で角度で実行させるにはどうすればよいですか?

分類Dev

テーブルセルを新しい行に強制するにはどうすればよいですか

分類Dev

特定のオブザーバブルが値を放出するときにタップ演算子を実行するにはどうすればよいですか?

分類Dev

スレッドを順番に実行するように強制するにはどうすればよいですか?

分類Dev

オブザーバブルをペアでバッファリングし、ペアで実行するにはどうすればよいですか?

分類Dev

RxJでアクションを実行した後、オブザーバブルを再試行するにはどうすればよいですか?

分類Dev

mobxオブザーバーを制御するにはどうすればよいですか?

分類Dev

モバイルブラウザでギャップレスオーディオループを実行するにはどうすればよいですか?

分類Dev

オブザーバブルを多分に変換するにはどうすればよいですか?

分類Dev

他のオブザーバブルに依存するオブザーバブルを構築するにはどうすればよいですか?

分類Dev

テーブルに数値を順番に入力するにはどうすればよいですか?

分類Dev

2つのオブザーバブルを交互に繰り返すオブザーバブルを作成するにはどうすればよいですか?

分類Dev

返品が不要な場合、オブザーバブルを実行するにはどうすればよいですか?

分類Dev

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

分類Dev

遅延のあるオブザーバブルを作成するにはどうすればよいですか

分類Dev

オブザーバブル間の依存関係を作成するにはどうすればよいですか?

分類Dev

ホットオブザーバブルを終了するにはどうすればよいですか?

分類Dev

デバッグトレースステートメントを強制的に順番に評価するにはどうすればよいですか?

分類Dev

入力type = "text"の数字キーボードをモバイルブラウザに強制的に引き出すにはどうすればよいですか?

分類Dev

オブザーバブルから自動的にトリガーされることなく、ビューを強制的に更新するにはどうすればよいですか?

分類Dev

オブザーバブルの配列から配列のオブザーバブルを作成するにはどうすればよいですか?

分類Dev

オブザーバブルの配列から配列のオブザーバブルを作成するにはどうすればよいですか?

分類Dev

オブザーバブルの配列から配列のオブザーバブルを作成するにはどうすればよいですか?

分類Dev

別のオブザーバブルからオブザーバブルを作成するにはどうすればよいですか?

分類Dev

'merge'を使用して、オブザーバブルのリストの同時実行を制限するにはどうすればよいですか?ただし、すべてのオブザーバブルが完了した後にのみ戻りますか?

分類Dev

一連のオブザーバブル関係の最初のオブザーバブルの値を取得するにはどうすればよいですか?

分類Dev

オブザーバブルが例外をスローした場合にストリームを続行するにはどうすればよいですか?

Related 関連記事

  1. 1

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

  2. 2

    2つのオブザーバブルを順番に実行するにはどうすればよいですか?

  3. 3

    2つのオブザーバブルを希望の順序で角度で実行させるにはどうすればよいですか?

  4. 4

    テーブルセルを新しい行に強制するにはどうすればよいですか

  5. 5

    特定のオブザーバブルが値を放出するときにタップ演算子を実行するにはどうすればよいですか?

  6. 6

    スレッドを順番に実行するように強制するにはどうすればよいですか?

  7. 7

    オブザーバブルをペアでバッファリングし、ペアで実行するにはどうすればよいですか?

  8. 8

    RxJでアクションを実行した後、オブザーバブルを再試行するにはどうすればよいですか?

  9. 9

    mobxオブザーバーを制御するにはどうすればよいですか?

  10. 10

    モバイルブラウザでギャップレスオーディオループを実行するにはどうすればよいですか?

  11. 11

    オブザーバブルを多分に変換するにはどうすればよいですか?

  12. 12

    他のオブザーバブルに依存するオブザーバブルを構築するにはどうすればよいですか?

  13. 13

    テーブルに数値を順番に入力するにはどうすればよいですか?

  14. 14

    2つのオブザーバブルを交互に繰り返すオブザーバブルを作成するにはどうすればよいですか?

  15. 15

    返品が不要な場合、オブザーバブルを実行するにはどうすればよいですか?

  16. 16

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

  17. 17

    遅延のあるオブザーバブルを作成するにはどうすればよいですか

  18. 18

    オブザーバブル間の依存関係を作成するにはどうすればよいですか?

  19. 19

    ホットオブザーバブルを終了するにはどうすればよいですか?

  20. 20

    デバッグトレースステートメントを強制的に順番に評価するにはどうすればよいですか?

  21. 21

    入力type = "text"の数字キーボードをモバイルブラウザに強制的に引き出すにはどうすればよいですか?

  22. 22

    オブザーバブルから自動的にトリガーされることなく、ビューを強制的に更新するにはどうすればよいですか?

  23. 23

    オブザーバブルの配列から配列のオブザーバブルを作成するにはどうすればよいですか?

  24. 24

    オブザーバブルの配列から配列のオブザーバブルを作成するにはどうすればよいですか?

  25. 25

    オブザーバブルの配列から配列のオブザーバブルを作成するにはどうすればよいですか?

  26. 26

    別のオブザーバブルからオブザーバブルを作成するにはどうすればよいですか?

  27. 27

    'merge'を使用して、オブザーバブルのリストの同時実行を制限するにはどうすればよいですか?ただし、すべてのオブザーバブルが完了した後にのみ戻りますか?

  28. 28

    一連のオブザーバブル関係の最初のオブザーバブルの値を取得するにはどうすればよいですか?

  29. 29

    オブザーバブルが例外をスローした場合にストリームを続行するにはどうすればよいですか?

ホットタグ

アーカイブ