我有一个特定的应用程序,应执行以下操作:
我在以下REPL中做了基本的实现:https://svelte.dev/repl/fcdce26dc0d843dbb4b394dcd2c838af?version=3.20.1
此方法有两个问题:
Job.svelte
视图基本上应该在您提供新的ID时重置,并清除以前的轮询器,但现在它非常笨拙,底部有一个反应式语句poller
,该处理程序也会被清除。这会导致出现多个轮询程序循环(您可以通过以0到2秒的随机间隔单击作业列表来重现此循环)对于此用例,有什么更好的方法来实现(在Svelte中?)>
非常感谢!
我有一个特定的应用程序,该应用程序应执行以下操作:您有要检查的作业列表,当您单击作业时,将获得详细信息视图。详细信息视图将轮询API以查看实时进度更新I ...
我认为1.只是继续Svelte的方式。没有ngOnChanges
像是角。
2 / .3。我认为这是一个独立于斯维尔特的问题。与时间赛跑异步的东西总是很难的。像rxjs
这样的库可以使处理起来更加容易,但是学习曲线却比较陡峭。一个例子:
[Job.svelte视图基本上应该在您提供新的ID时重置,并清除任何以前的轮询器,但是现在它非常笨拙,底部有一个反应式语句
我建议使用svelte的await blocks。有了它,您就可以立即使用异步功能所需的所有逻辑,例如生成加载屏幕或捕获错误。我使用自定义超时功能(睡眠)修改了REPL,以模拟从远程服务器获取数据: