javascript RxJS中的同步执行

Posted

tags:

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

const { Observable } = require('rxjs')

class ExecutableObservable extends Observable {
  execute(onError) {
    let hasExecuted = false
    let returnValue

    const next = (
      value,
    ) => {
      if (hasExecuted) {
        console
        .error(
          new Error(
            "Cannot return multiple values in `createExecutableObservable`. Make sure your pipeline returns only a single value and doesn't use asynchronous operators."
          ),
        )
      }

      returnValue = value
    }

    this
    .subscribe({
      complete: () => {},
      error: onError,
      next,
    })

    hasExecuted = true

    return returnValue
  }

  lift(operator) {
    const observable = new ExecutableObservable()

    observable
    .source = this

    observable
    .operator = operator

    return observable
  }
}

const createExecutableObservable = (
  source$,
) => {
  source$
  .__proto__ = new ExecutableObservable()

  return source$
}

module.exports = createExecutableObservable

以上是关于javascript RxJS中的同步执行的主要内容,如果未能解决你的问题,请参考以下文章

javascript 具有发生器的同步RxJS执行

javascript 在RxJS中自动取消订阅同步执行

javascript 使用RxJS的同步传感器执行错误

javascript 同步RxJS使用`from`

javascript 使用BehaviorSubject的同步RxJS不正确

javascript 具有自动阵列兼容性的同步RxJS