我正在使用 Cytoscape.js 2.7.15 进行我的毕业项目,我需要进行一些简单的可视化,例如更改节点的标签。
subjectNode.style('label',myDesiredLabelToshow);
对我有用,但我在 for 循环中使用它,当我想慢慢地或在 Debug模式下查看我的算法如何标记它们时,节点的标签不会立即更改,它们最终会一起更改在我的函数结束后(我的意思是到达函数的结束范围)。
我尝试使用cy.batch();
cy.startBatch()
甚至尝试设置 Timeout
但没有任何效果。
在 Debug模式下跟踪 cytoscape.js 文件后,我看到一个函数 o.requestAnimationFrame = function.. 在调试器命中后,更改已应用到我的图表上,如何才能我在自定义函数中手动触发它?
最佳答案
几乎所有渲染器都会使用 requestAnimationFrame()
来使用渲染循环。这意味着它是异步的,您在单步执行时不会看到结果。
答案是不要使用断点或单步执行,因为这些方法假设一切都是同步工作的。
使用用户界面中的按钮“逐步”遍历算法中的点,或使用 promise 链中的动画来可视化进展。或者放弃在 UI 本身中显示调试提示,而只使用 console.log()
。
关于javascript - Cytoscape.js eles.style 更改立即更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925344/