当页面不可见时,我的 RXJS 流需要以 250 毫秒的间隔处理数据块。Chrome 将这些时间间隔限制为 1000 毫秒。为了解决这个问题,我实现了一个在 web worker 中使用 setInterval 的 AsyncAction。我使用它如下:
export const customScheduler = new AsyncScheduler(WebWorkerAsyncAction)
然而,这并非没有问题。使用 JIT 编译它时,它工作正常。使用 AOT 编译它时(另一个项目要求)它适用于第一次编译,但是之后的每第二次编译都会失败,并出现以下错误:
错误:错误:无法从 /node_modules/rxjs/internal/scheduler/AsyncScheduler.d.ts 解析 ./ TsCompilerAotCompilerTypeCheckHostAdapter.fromSummaryFileName (\node_modules@angular\compiler-cli\src\transformers\compiler_host.js:272:23 ) 在 AotSummaryResolver.fromSummaryFileName (\node_modules@angular\compiler\bundles\compiler.umd.js:26320:30) 在 \node_modules@angular\compiler\bundles\compiler.umd.js:24481:126 在 Array.map ()在 FromJsonDeserializer.deserialize (\node_modules@angular\compiler\bundles\compiler.umd.js:24481:41) at deserializeSummaries (\node_modules@angular\compiler\bundles\compiler.umd.js:24086:29) at AotSummaryResolver._loadSummaryFile (\node_modules@angular\compiler\bundles\compiler.umd.js:26370:26) 在 AotSummaryResolver。resolveSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:26328:22) 在 ToJsonSerializer.loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) 在 ToJsonSerializer.visitStaticSymbol ( \node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) 在 ToJsonSerializer.visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) 在 visitValue (\node_modules@angular \compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@ angular\compiler\bundles\compiler.umd.js:2451:24) 在 visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) 在 ToJsonSerializer.visitStaticSymbol (\node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) 在 ToJsonSerializer.visitOther ( \node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles \compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\编译器\捆绑包\compiler.umd.js:2429:28)loadSummary (\node_modules@angular\compiler\bundles\compiler.umd.js:24310:48) 在 ToJsonSerializer.visitStaticSymbol (\node_modules@angular\compiler\bundles\compiler.umd.js:24285:32) 在 ToJsonSerializer.visitOther ( \node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) at visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) at \node_modules@angular\compiler\bundles \compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@angular\编译器\捆绑包\compiler.umd.js:2429:28)visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) 在 visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) 在 \node_modules@angular\compiler \bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@角度\编译器\bundles\compiler.umd.js:2429:28)visitOther (\node_modules@angular\compiler\bundles\compiler.umd.js:24250:34) 在 visitValue (\node_modules@angular\compiler\bundles\compiler.umd.js:2438:24) 在 \node_modules@angular\compiler \bundles\compiler.umd.js:2451:54 at Array.map () at ToJsonSerializer.ValueTransformer.visitArray (\node_modules@angular\compiler\bundles\compiler.umd.js:2451:24) at visitValue (\node_modules@角度\编译器\bundles\compiler.umd.js:2429:28)24) 在访问值 (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)24) 在访问值 (\node_modules@angular\compiler\bundles\compiler.umd.js:2429:28)
我认为这是使用“内部”RXJS 包的一个怪癖,但如果不依赖 AsyncHandler,我看不到解决方法。