【发布时间】:2020-08-07 00:16:35
【问题描述】:
我有一个特定的应用程序应该执行以下操作:
- 您有一份要检查的作业列表
- 单击作业时,您会看到详细视图
- 详细视图将轮询 API 以查看实时进度更新
我在下面的 REPL 中做了一个基本的实现:https://svelte.dev/repl/fcdce26dc0d843dbb4b394dcd2c838af?version=3.20.1
这种方法有几个问题:
-
Job.svelte视图应该在您提供新 ID 并清除之前的所有轮询器时基本重置,但现在底部的响应式语句非常尴尬 - 由于轮询器执行异步获取,即使处理程序已经在执行,超时处理程序
poller也可能被清除。这会导致出现多个轮询器循环(您可以通过以 0 到 2 秒之间的随机间隔单击作业列表来重现此情况) - 当前的方法对开发人员不友好,很容易被破坏。上面的“错误”可以通过跟踪引用/锁定之类的东西来修复,但这样就更难理解了。
对于这个用例,有什么更好的实现方式(在 Svelte 中)?
非常感谢!
【问题讨论】: