2

我在毕业项目中使用Cytoscape.js 2.7.15,我需要做一些简单的可视化,比如更改节点的标签。

subjectNode.style('label',myDesiredLabelToshow);

对我有用,但我在 for 循环中使用它,当我想慢慢地或在调试模式下查看我的算法如何工作来标记它们时,节点的标签不会立即改变,它们最终会在我的函数之后一起改变结束(我的意思是结束功能范围)。

我尝试使用cy.batch(); cy.startBatch()甚至尝试设置Timeout但没有任何效果。

在调试模式下跟踪cytoscape.js文件后,我看到了一个函数o.requestAnimationFrame = function..在调试器点击更改应用于我的图形后,我如何在我的自定义函数中手动触发它?

4

1 回答 1

0

几乎所有渲染器都会使用requestAnimationFrame(). 这意味着它是异步的,并且在步进时您不会看到结果。

答案是不要使用断点或单步执行,因为这些方法假定一切都是同步工作的。

使用 UI 中的按钮“逐步”通过算法中的点,或使用承诺链中的动画来可视化进程。或者放弃在 UI 本身中显示调试提示,只使用console.log().

于 2017-12-31T18:09:16.273 回答