我正在尝试创建一个可以订阅Subject
的RxJava 2 Observable
,但是当订阅的Observable
因错误或完成而终止时不会终止。< / p>
基本上,这将作为一个事件总线,可以订阅其他Observable
。
这样做的正确方法是什么,避免传播终止并避免泄漏?
答案 0 :(得分:1)
这可以解决您的问题:https://github.com/JakeWharton/RxRelay/
答案 1 :(得分:0)
您最好的选择我认为它使用的是操作员“继电器”,一旦所有物品都在管道中排出,它就不会取消订阅
public static Dictionary<string, object> ByteToObjectArray(byte[][] bytes)
{
var dict = new Dictionary<string, object>();
var formatter = new BinaryFormatter();
for (int i = 0; i < bytes.Length; i += 2)
{
string key = Encoding.UTF8.GetString(bytes[i]);
// Alternatively
//string key = Encoding.Unicode.GetString(bytes[i]);
using (var stream = new MemoryStream(bytes[i + 1]))
{
object obj = formatter.Deserialize(stream);
dict.Add(key, obj);
}
}
return dict;
}
您可以在此处查看更多中继示例https://github.com/politrons/reactive/blob/master/src/test/java/rx/relay/Relay.java