如何进行苗条的投票?

问题描述 投票:0回答:3

我有一个特定的应用程序,应执行以下操作:

  1. 您有要检查的工作清单
  2. 当您单击工作时,您可以获得详细视图
  3. 详细信息视图将轮询API以查看实时进度更新

我在以下REPL中做了基本的实现:https://svelte.dev/repl/fcdce26dc0d843dbb4b394dcd2c838af?version=3.20.1

此方法有两个问题:

  1. Job.svelte视图基本上应该在您提供新的ID时重置,并清除以前的轮询器,但现在它非常笨拙,底部有一个反应式语句
  2. 由于轮询程序执行异步获取,因此即使已在执行超时处理程序poller,该处理程序也会被清除。这会导致出现多个轮询程序循环(您可以通过以0到2秒的随机间隔单击作业列表来重现此循环)
  3. 当前的方法对开发人员不友好,很容易被破坏。可以通过跟踪引用/锁定类型的东西来修复上面的“错误”,但是这样就更难缠头了。

对于此用例,有什么更好的方法来实现(在Svelte中?)>

非常感谢!

我有一个特定的应用程序,该应用程序应执行以下操作:您有要检查的作业列表,当您单击作业时,将获得详细信息视图。详细信息视图将轮询API以查看实时进度更新I ...

polling svelte
3个回答
1
投票

我认为1.只是继续Svelte的方式。没有ngOnChanges像是角。

2 / .3。我认为这是一个独立于斯维尔特的问题。与时间赛跑异步的东西总是很难的。像rxjs这样的库可以使处理起来更加容易,但是学习曲线却比较陡峭。一个例子:


0
投票

[Job.svelte视图基本上应该在您提供新的ID时重置,并清除任何以前的轮询器,但是现在它非常笨拙,底部有一个反应式语句


-1
投票

我建议使用svelte的await blocks。有了它,您就可以立即使用异步功能所需的所有逻辑,例如生成加载屏幕或捕获错误。我使用自定义超时功能(睡眠)修改了REPL,以模拟从远程服务器获取数据:

© www.soinside.com 2019 - 2024. All rights reserved.