【问题标题】:How do I get the currenct value of a property?如何获取属性的当前值?
【发布时间】:2015-06-08 13:38:03
【问题描述】:

FAQ 中的第一个条目...

没有可用的 getLatestValue 方法,也不会。

您通过订阅流/属性(使用 onValue) 并处理回调中的值

如果价值到达时我还没有准备好怎么办?这是否意味着我必须存储它的副本?

如果你必须订阅一个属性来获取它的值,那么属性的意义何在?为什么不只使用流?

我的情况是,当用户按下按钮时,一些配置会更新。在我的代码中的其他地方,我需要读取最新的配置值。但这不会同时发生变化。

【问题讨论】:

  • 只需为您的按钮点击流和配置属性使用组合器。
  • 对不起,我不明白。通过单击按钮,我可以很好地更新配置。它稍后使用我坚持的价值。
  • 您需要在代码中的哪个位置使用该配置?
  • 在 AJAX 回调之后。在回调期间,提交按钮未启用并且上面有不同的文本。当请求完成时,我需要将文本切换回当前配置所说的内容。
  • 听起来您需要另一个属性来告诉您 ajax 请求何时处于活动状态,并将其与 config.xml 结合起来。或“ajax 请求完成”事件流来快照“当前”配置值,如果需要的话。

标签: frp bacon.js


【解决方案1】:

您可以使用property.toEventStream() 基于属性创建EventStream,其中流还包含调用此方法时属性当前值的事件。

例子:

// Config property created somewhere
var config = someStream.toProperty();

// Your behaviour depends on config
config.toEventStream().onValue(function(conf) {
    // React to config changes here
    // conf will be the "current" value on first call
});

如 cmets 中所述,combining streams and properties 可能是更合适的解决方案,具体取决于您实际尝试执行的操作。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2021-11-18
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多