Lay*_*lez 6 .net f# system.reactive
给出2种类型A和B默认值d(A)&d(B).和2个主题:
let sa = new Subject<A>()
let sb = new Subject<B>()
和f类型的功能A -> B -> C
我创建了这个可观察的:
let o = Observable.CombineLatest(sa, sb, f)
但是,我需要o根据d(A)&生成初始值d(B).文档说,一旦两个主题产生了他们的第一个输出,CombineLatest只会产生它的第一个输出.
我有两种方法,但我不知道哪种方法可行/哪种方法最好,或者我是否遗漏了一些已经做了我需要的运算符.
我来到了第一种方法是手动调用OnNext来sa和sb到相关的订阅后的默认值o已经作出.
我的第二种方法是使用BehaviorSubjects而不是plain Subjects,用初始值创建它们,并希望CombineLatest将它用于它的第一个输出.
谢谢阅读.
附录 
我已经确认第二种方法有效,但我仍然不知道在这种情况下引入一个BehaviorSubject而不是一个平原Subject是最好的.
Cra*_*ney 16
怎么用StartWith?
public static Observable<T> StartWithDefault(this Observable<T> observable) {
    return observable.StartWith(default(T));
}
然后:
sa.StartWithDefault().CombineLatest(sb.StartWithDefault(), f)