作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
ReactiveCocoa 可以通过调用它的-subscribeCompleted:
将信号转换为“热”信号。但我认为如果您不关心结果(即没有订阅者),这种方法会非常冗长。
RACDisposable *animationDisposable = [[self play:animation] subscribeCompleted:^{
// just to make the animation play
}];
而且这3行还不足以表达我的意图。
有没有类似目的的方法?谢谢!
最佳答案
I want to do nothing except making it hot (=make it run once).
"You keep using that word. I do not think it means what you think it means."
“热信号” 是一种无论是否有任何订阅者都会发送值(并且可能有效)的信号。 “冷信号” 是一种推迟其工作和发送任何值直到它有订阅者的信号。冷信号将执行其工作并为每个订阅者发送值。
如果你想让冷信号只运行一次但有多个订阅者,你需要多播信号。多播是一个非常简单的概念,其工作原理如下:
[subject sendNext:value]
将其发送给主题。但是,您可以而且应该使用 RACMulticastConnection
以更少的代码完成上述所有操作:
RACMulticastConnection *connection = [signal publish];
[connection.signal subscribe:subscriberA];
[connection.signal subscribe:subscriberB];
[connection.signal subscribe:subscriberC];
[connection connect]; // This will cause the original signal to execute once.
// But each of subscriberA, subscriberB, and subscriberC
// will be sent the values from `signal`.
关于ios - 如何让RACSignal变热?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22163122/
我正在为我的一个网站使用 Jquery-Ui for Jquery draggable。这是我的 fiddle fiddle .我可以在屏幕上添加多个小部件。它工作正常,但是当我关闭任何一个并尝试拖动
我是一名优秀的程序员,十分优秀!