Frage

Ich versuche Reactive Extensions von Boo zu verwenden und in Art Probleme leite. Hier ist das Grund Beispiel:

def OnSubscribe(observer as IObservable[of string]) as callable:
    print "subscribing"

    def Dispose():
        print "disposing"

    return Dispose

observable = System.Linq.Observable.Create[of string](OnSubscribe)
observer = System.Linq.Observer.Create[of string]({x as string | print x})
observable.Subscribe(observer)

Das hier abonnieren gibt einen System.InvalidCastException: Kann nicht vom Quelltyp Zieltyp umgewandelt. Das Problem scheint zu sein mit, wie ich die beobachtbaren bin zu schaffen, aber ich habe gekämpft, um zu sehen, wo der Typ Problem ergibt sich aus.

Ideen?

War es hilfreich?

Lösung

Observable.Create nimmt Func<IObserver,Action>, aber Ihr OnSubscribe akzeptiert eine IObservable.

Versuchen Sie diese:

def OnSubscribe(observer as IObserver[of string]) as callable():
    print "subscribing"

    observer.OnNext("first and only value")
    observer.OnCompleted()

    def Dispose():
        print "disposing"

    return Dispose

observable = System.Linq.Observable.Create[of string](OnSubscribe)
observer = System.Linq.Observer.Create[of string]({x as string | print x})
observable.Subscribe(observer)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top