RxJS5で時限背圧を適用するにはどうすればよいですか?

ヒューゴセレノフェレイラ

次のコードがあると想像してください。

let a = Rx.Observable.of(1, 2, 3)
let b = Observable.zip(a, a, (a, b) => a + b)
b.forEach(t => console.log(t))

これにより、結果がすぐに出力されます。さて、どのように私は、各メッセージの間に一定時間の遅延を入れて行う背圧の仕方(私はバッファを望んでいないことに注意してください。代わりに、私が欲しいabなるためにコールド観測を)のように、:

b.takeEvery(1000).forEach(t => console.log(t))

そして、まったく同じ答えがあります:

<wait 1s>
2
<wait 1s>
4
<wait 1s>
6

代替案:バックプレッシャ(一部のオブザーバブルのプルメカニズム)がRxJSでサポートされていないものである場合、リソースを使い果たすことなく無限のジェネレーターを作成するにはどうすればよいですか?

代替案2:プルメカニズムとプッシュメカニズムの両方をサポートする他のJSフレームワーク?

Artur Grzesiak

RxJS 5.xの場合、背圧はサポートされていませんが、たとえば4.xバージョンにはpausableオペレーターがあります。ホットオブザーバブルでのみ機能します。4.xの場合の背圧の詳細ここ(特に下部の戦利品とRxJS関連の説明を参照してください)。

このErikMeijerのツイートは少し物議を醸すかもしれませんが、関連性があります:https//twitter.com/headinthebox/status/774635475071934464

背圧メカニズムを独自に実装するには、双方向通信チャネルが必要です。これは、両端に1つずつ、合計2つのサブジェクトでかなり簡単に作成できます。基本的nextに、メッセージの送信と.subscribe相手側へのリストに使用します

ジェネレーターの作成も実行可能です。ここでも、サブジェクトを使用して、プッシュベースの世界とプルベースの世界の間を橋渡しします。フィボナッチ数を生成するための例示的な実装の下。

const fib = () => {
  const n = new Rx.Subject()
  const f = n
    .scan(c => ({ a: c.b, b: c.b + c.a }), { a: 0, b: 1 })
    .map(c => c.a)
    
  return {
    $: f,
    next: () => n.next()
  }
}

const f = fib()

f.$.subscribe(n => document.querySelector('#r').innerHTML = n)
Rx.Observable.fromEvent(document.querySelector('#f'), 'click')
  .do(f.next)
  .subscribe()
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.6/Rx.js"></script>

<button id='f'>NEXT FIBONACCI</button>

<div id='r'>_?_<div>

あなたにとって興味深いかもしれない別のjsライブラリはhttps://github.com/ubolonton/js-cspです-それを使用しなかったので、それがどのように背圧を処理するかはわかりません。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

TestSchedulerにRxJs5をチェックさせるにはどうすればよいですか?

分類Dev

時系列を別の期間に最適に圧縮するにはどうすればよいですか?

分類Dev

RxJS5でHTTPリクエストを送信するための再試行を遅らせるにはどうすればよいですか?

分類Dev

* ngForに数量制限を適用するにはどうすればよいですか?

分類Dev

recyclerviewに制限を適用するにはどうすればよいですか?

分類Dev

Androidアプリに年齢制限を適用するにはどうすればよいですか?

分類Dev

PostgreSQLでCROSSJOINを適用するにはどうすればよいですか?

分類Dev

gedit で darkTheme を適用するにはどうすればよいですか?

分類Dev

ComodoSSLをKubernetesIngressに適用するにはどうすればよいですか?

分類Dev

Haskellのデータに実行時条件を適用するにはどうすればよいですか?

分類Dev

日時変数にルールを適用するにはどうすればよいですか?

分類Dev

RXを使用して猶予時間を適用するにはどうすればよいですか?

分類Dev

LINQのif条件を適用するにはどうすればよいですか?

分類Dev

圧縮に適したJavaScriptを作成するにはどうすればよいですか?

分類Dev

DropzoneJSで画像を圧縮するにはどうすればよいですか?

分類Dev

Laravel5でHTMLを圧縮するにはどうすればよいですか

分類Dev

画像を圧縮するにはどうすればよいですか?

分類Dev

.showと.hidejQueryを圧縮するにはどうすればよいですか?

分類Dev

コードを圧縮するにはどうすればよいですか

分類Dev

futures :: Stream :: concat2によって読み取られるバイト数に制限を適用するにはどうすればよいですか?

分類Dev

PHPでユーザー権限を適切に管理するにはどうすればよいですか?

分類Dev

protegeで「のみ」の制限を適切に設定するにはどうすればよいですか?

分類Dev

現在の作業を迅速に適切に適用するにはどうすればよいですか

分類Dev

CSSをPHPエコーに適切に適用するにはどうすればよいですか?

分類Dev

Elmで目的の順序で関数を部分的に適用するにはどうすればよいですか?

分類Dev

sklearn.Linear_model.LinearRegressionを適用するときにCPU使用率を制限するにはどうすればよいですか?

分類Dev

Jqueryで複製された要素に検証を適用するにはどうすればよいですか?

分類Dev

nusoapを使用するときにTLS1.2を適用するにはどうすればよいですか?

分類Dev

C#で画像にぼかし効果を適用するにはどうすればよいですか?

Related 関連記事

  1. 1

    TestSchedulerにRxJs5をチェックさせるにはどうすればよいですか?

  2. 2

    時系列を別の期間に最適に圧縮するにはどうすればよいですか?

  3. 3

    RxJS5でHTTPリクエストを送信するための再試行を遅らせるにはどうすればよいですか?

  4. 4

    * ngForに数量制限を適用するにはどうすればよいですか?

  5. 5

    recyclerviewに制限を適用するにはどうすればよいですか?

  6. 6

    Androidアプリに年齢制限を適用するにはどうすればよいですか?

  7. 7

    PostgreSQLでCROSSJOINを適用するにはどうすればよいですか?

  8. 8

    gedit で darkTheme を適用するにはどうすればよいですか?

  9. 9

    ComodoSSLをKubernetesIngressに適用するにはどうすればよいですか?

  10. 10

    Haskellのデータに実行時条件を適用するにはどうすればよいですか?

  11. 11

    日時変数にルールを適用するにはどうすればよいですか?

  12. 12

    RXを使用して猶予時間を適用するにはどうすればよいですか?

  13. 13

    LINQのif条件を適用するにはどうすればよいですか?

  14. 14

    圧縮に適したJavaScriptを作成するにはどうすればよいですか?

  15. 15

    DropzoneJSで画像を圧縮するにはどうすればよいですか?

  16. 16

    Laravel5でHTMLを圧縮するにはどうすればよいですか

  17. 17

    画像を圧縮するにはどうすればよいですか?

  18. 18

    .showと.hidejQueryを圧縮するにはどうすればよいですか?

  19. 19

    コードを圧縮するにはどうすればよいですか

  20. 20

    futures :: Stream :: concat2によって読み取られるバイト数に制限を適用するにはどうすればよいですか?

  21. 21

    PHPでユーザー権限を適切に管理するにはどうすればよいですか?

  22. 22

    protegeで「のみ」の制限を適切に設定するにはどうすればよいですか?

  23. 23

    現在の作業を迅速に適切に適用するにはどうすればよいですか

  24. 24

    CSSをPHPエコーに適切に適用するにはどうすればよいですか?

  25. 25

    Elmで目的の順序で関数を部分的に適用するにはどうすればよいですか?

  26. 26

    sklearn.Linear_model.LinearRegressionを適用するときにCPU使用率を制限するにはどうすればよいですか?

  27. 27

    Jqueryで複製された要素に検証を適用するにはどうすればよいですか?

  28. 28

    nusoapを使用するときにTLS1.2を適用するにはどうすればよいですか?

  29. 29

    C#で画像にぼかし効果を適用するにはどうすればよいですか?

ホットタグ

アーカイブ