javascript RxJS中的正确背压处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript RxJS中的正确背压处理相关的知识,希望对你有一定的参考价值。

const { delay, tap } = require('rxjs/operators')

const createIteratorSubject = require('./createIteratorSubject')

const createGenerator = function*() {
  yield 1
  yield 2
  yield 3
  yield 4
}

const generator = createGenerator()

const iterator$ = (
  createIteratorSubject(
    generator,
  )
)

iterator$
.pipe(
  tap(value => (
    console
    .info(
      'INCOMING VALUE',
      value,
    )
  )),
  delay(1000),
  tap(value => (
    console
    .info(
      'DONE PROCESSING VALUE',
      value,
    )
  )),
)
.subscribe({
  complete: () => {
    console
    .info('DONE PROCESSING ALL VALUES')
  },
  next: (
    iterator$
    .push
  ),
})

// INCOMING VALUE 1
// DONE PROCESSING VALUE 1
// INCOMING VALUE 2
// DONE PROCESSING VALUE 2
// INCOMING VALUE 3
// DONE PROCESSING VALUE 3
// INCOMING VALUE 4
// DONE PROCESSING VALUE 4
// DONE PROCESSING ALL VALUES

以上是关于javascript RxJS中的正确背压处理的主要内容,如果未能解决你的问题,请参考以下文章

javascript 使用BehaviorSubject的同步RxJS不正确

Flink的处理背压​原理及问题-面试必备

Kotlin 协程Flow 异步流 ⑧ ( 背压概念 | 使用缓冲处理背压问题 | 使用 flowOn 处理背压问题 | 从提高收集元素效率方向解决背压问题 )

Kotlin 协程Flow 异步流 ⑧ ( 背压概念 | 使用缓冲处理背压问题 | 使用 flowOn 处理背压问题 | 从提高收集元素效率方向解决背压问题 )

javascript 简化的背压减轻

javascript RxJS中的同步执行