【问题标题】:How to check what caused Tracker.autorun fire in Meteor?如何检查导致 Tracker.autorun 在 Meteor 中起火的原因?
【发布时间】:2017-11-27 08:23:16
【问题描述】:

在加载我的 Meteor 应用程序期间,我的 Tracker.autorun 函数触发了太多次。我想检查导致该问题的原因,但我什至无法在函数内部检查是什么事件导致其实际触发。我该怎么做?

编辑:

如果我在autorun 中输入console.trace(),我会得到:

(匿名)@VM6091:1
(匿名)@createStore.js:21
Tracker.Computation._compute @ tracker.js:311
Tracker.Computation @ tracker.js:201
Tracker.autorun @ tracker.js:576
module.export.exports.default@createStore.js:15
(匿名)@ main.js:36
也许Ready @ startup_client.js:26
loadingCompleted @ 启动客户端.js:38

但我仍然不知道是什么导致loadingCompleted 函数触发。

【问题讨论】:

  • 为什么不显示您的跟踪代码?那真的很有帮助。
  • 也看main.js:36

标签: javascript meteor meteor-tracker


【解决方案1】:

在加载我的 Meteor 应用程序期间,我的 Tracker.autorun 函数也会触发 很多次。

这意味着你更改了在你的自动运行函数中使用的响应源太多次。

1) 您可以使用浏览器断点捕获更改。只需在自动运行函数中创建断点,然后查看调用堆栈。

2) 您可以记录所有更改您的反应源(Collection、ReactiveVar 等)的函数

【讨论】:

  • 谢谢!我编辑了我的问题,添加了更多细节,但我仍然卡住了。只有我拥有的响应式源是集合,但我并没有在我的应用加载过程中真正修改它们。
  • @KarolSelak 你知道吗,当你创建自动运行函数时,这个函数第一次立即运行,然后它等待自动运行函数内部的响应源更改并每次运行当反应源改变时?也许你对这种行为感到困惑。
  • 好的,我对我的问题有了一些新的想法,但是由于我的问题是关于调试的,所以我将答案标记为有效(因为它引导我走上了正确的道路)。我很快就会用我真正的问题写一个新问题。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2012-01-12
  • 2011-02-02
  • 1970-01-01
  • 2014-06-30
  • 1970-01-01
  • 2016-06-28
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多