RxJS 使用调度器17 Mar 2025 | 5 分钟阅读 什么是 RxJS 调度器?RxJS 调度器是一种控制计时策略的方法,用于在 RxJS 应用程序或反应式应用程序中执行任务。 调度器用于控制订阅何时开始以及何时传递通知。 根据 RxJS 应用程序网站的官方文档,调度器被定义为“调度器是一种实体,使您能够定义 Observable 将在什么执行上下文中将通知传递给它的 Observer。” 一个 RxJS 调度器由以下三个部分组成
如何定义 RxJS 调度器?我们知道 RxJS 调度器控制订阅必须开始时程序的执行。 我们可以通过以下方式定义一个基本的调度器。 语法 让我们看一下同步 Observable 和异步 Observable,并通过比较两者的输出来注意差异 参见同步示例示例 1 输出 执行完以上程序后,您将看到以下结果 ![]() 参见异步示例 (通过使用调度器)示例 2 输出 执行完以上程序后,您将看到以下结果 ![]() 示例说明
RxJS 调度器的类型RxJS 提供了不同的调度器,可以通过使用 Scheduler 对象的静态属性来创建和返回。 让我们看看不同的调度器,并解释它们之间的区别。 RxJS 调度器可以分为以下调度器类型
使用调度器我们已经在 RxJS 代码中使用了调度器,而没有明确说明我们使用的调度器类型。 我们没有发现需要指定调度器的类型,因为所有处理并发的 Observable 运算符都有可选的调度器。 如果我们不提供调度器,RxJS 将自动选择一个默认调度器,使用最小并发原则。 例如
默认情况下,RxJS 使用最小并发调度器。 为了引入并发以提高性能,我们可以相应地选择不同的调度器。 要指定特定的调度器,我们可以使用那些采用调度器的运算符方法,例如,from([10, 20, 30], asyncScheduler)。 静态创建运算符通常将调度器作为参数。 例如,from(array, scheduler) 允许您指定在传递从数组转换的每个通知时要使用的调度器。 它通常是运算符的最后一个参数。 以下是采用调度器参数的静态创建运算符的列表
一些运算符还采用与时间相关的调度器参数,例如 bufferTime、debounceTime、delay、auditTime、sampleTime、throttleTime、timeInterval、timeout、timeoutWith、windowTime 等。 其他实例运算符,如 cache、combineLatest、concat、expand、merge、publishReplay、startWith 也采用调度器参数。 使用调度器,我们可以控制 Observables 发出数据的时间。 有不同种类的调度器,RxJS 会根据创建最小并发来完成工作的原则自动选择。 调度器根据它们自己的虚拟时钟运行任务。 它与现实世界的时钟无关。 许多运算符方便我们设置调度器以满足我们的需求。 简而言之,我们可以说调度器影响任务执行的计时。 我们通过传入额外的调度器参数来更改某些运算符的默认调度器。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。