Session.equals不再(完全)被动? [流星]

时间:2016-05-02 08:55:09

标签: meteor

我需要WHERE关于响应计算中的Session变量的值,并在值更改时重新运行计算。根据{{​​3}},此用例适用于become: yes。到目前为止一直很好,因此我在我的反应计算代码中调用了- hosts: webserver become: yes roles: - your-role ,如下所示:

- name: turn off avahi-cups-reload.override
  copy:
    src: /etc/init/avahi-cups-reload.override 
    dest: /etc/init/avahi-cups-reload.override 
    owner: root
    group: root
    mode: 0744
  become: yes

以前的代码运行良好,但由于某种原因,它停止了这样做。现在(在版本METEOR@1.3.2.4中)我注意到虽然if的会话值发生变化但是反应计算没有重新运行的问题。

在我试图找出原因的过程中,我用以下代码替换了代码:

Session.equals

哪个有效 - 计算现在可以在预期时重新运行!

任何人都可以说明Session.equals为什么会有效,而不是if (!Session.equals(key, undefined)) { // now I know 'key' is defined ... }

可能相关:Session变量的值发生变化,但始终是“已定义”(例如,从一个非空字符串到另一个非空字符串)。这是否足以重新触发计算? IOW,也许key'聪明'足以知道从一个定义值变为另一个定义值的值,因此它确定计算重新运行不是必需的,这会导致我遇到的问题?

1 个答案:

答案 0 :(得分:2)

你实际上已经自己回答了。 Session.equals是一个优化版本,只有在值发生变化时才重新运行计算。现在,由于价值没有从定义的'中改变,因此它不会重新运行计算。