gpt4 book ai didi

javascript - 来自值的 Bacon.js EventStream

转载 作者:行者123 更新时间:2023-11-30 11:55:21 26 4
gpt4 key购买 nike

假设我的代码中有一个任意值:var 任意值 = null;

我的代码中有多个地方可以更改此值。我可以创建一个基于 this 值变化的 EventStream 吗?换句话说,如果 arbitraryValue 发生变化,新值将作为 EventStream 发送给订阅者?

最佳答案

使用 Bus 而不是普通值:

var arbitraryValueBus = Bacon.Bus()

现在您可以使用 Bus.push 设置值:

arbitraryValueBus.push(newValue)

你可以通过订阅Bus来监听值的变化:

arbitraryValueBus.forEach(newValue => console.log(newValue))

请注意,使用简单的 Bus,您的订阅者将不会获得在调用 forEach 之前设置的值。所以,如果你想添加一个“当前值”,并用当前值立即调用你的回调,你应该使用 Property:

var b = Bacon.Bus()
var p = arbitraryValueBus.toProperty()
p.forEach() // to make sure it's updated before adding subscribers
b.push("first value")
p.subscribe(x => console.log(x))

==> outputs "first value"

现在您的订阅者将立即获得当前值(如果有的话)。

关于javascript - 来自值的 Bacon.js EventStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com