简体   繁体   English

Boo中Observable.Create的类型问题

[英]Type problem with Observable.Create from Boo

I'm trying to use Reactive Extensions from Boo and am running into type problems. 我正在尝试使用Boo的Reactive Extensions,并且遇到类型问题。 Here's the basic example: 这是基本示例:

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)

The Subscribe here gives a System.InvalidCastException: Cannot cast from source type to destination type. 此处的订阅给出System.InvalidCastException:无法从源类型转换为目标类型。 The issue appears to be with how I'm creating the observable, but I've struggled to see where the type problem arises from. 问题似乎与如何创建可观察对象有关,但是我一直在努力寻找类型问题的来源。

Ideas? 有想法吗?

Observable.Create takes Func<IObserver,Action> , but your OnSubscribe accepts an IObservable . Observable.Create接受Func<IObserver,Action> ,但是您的OnSubscribe接受IObservable

Try this: 尝试这个:

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)

类型可观察<object>不可分配给类型 Observable<div id="text_translate"><pre> GetUserDetailsById(Id): Observable<userdetails> { return this.httpclient.get(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: Response) => <userdetails>response.json()) } 1. constructor(private httpclient: HttpClient) 2. export class userdetails { idUser: number; firstName: string; lastName: string; email: string; permissions: string; isActive: boolean; displayRole: number; }</pre><p> 删除时出错.map((response: Response) => response.json())</p><p> Error: Type Observable<Object> is not assignable to type Observable我不想使用.map((response: Response) => response.json()) 有什么建议吗? 上面的代码在与 this.http 示例一起使用时工作正常:</p><p> 返回 this.http.get(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: Response) => response.json())</p><ul><li> 构造函数(私有 http:Http)</li></ul></div></object> - Type Observable<Object> is not assignable to type Observable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 用 Observable.Create 包裹 Observable.FromEventPattern - Wrap Observable.FromEventPattern with Observable.Create ReactiveCocoa等效于Observable.Create - ReactiveCocoa's equivalent to Observable.Create Observable.Create:CancellationToken不会过渡到IsCancellationRequested - Observable.Create: CancellationToken doesn't transition to IsCancellationRequested 反应式Observable.Create为异步生产者而无需Task.Run - Reactive Observable.Create for async producer without Task.Run 反应框架消除了Observable.Create中的while循环 - Reactive framework eliminate while loop in Observable.Create 如何在Boo中创建调度表? - How can I create a dispatch table in Boo? 创造可观察的 <bool> 来自observablecollection - create observable<bool> from observablecollection 类型可观察<object>不可分配给类型 Observable<div id="text_translate"><pre> GetUserDetailsById(Id): Observable<userdetails> { return this.httpclient.get(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: Response) => <userdetails>response.json()) } 1. constructor(private httpclient: HttpClient) 2. export class userdetails { idUser: number; firstName: string; lastName: string; email: string; permissions: string; isActive: boolean; displayRole: number; }</pre><p> 删除时出错.map((response: Response) => response.json())</p><p> Error: Type Observable<Object> is not assignable to type Observable我不想使用.map((response: Response) => response.json()) 有什么建议吗? 上面的代码在与 this.http 示例一起使用时工作正常:</p><p> 返回 this.http.get(this.BaseURI + '/user/UserDetailsById/' + Id).map((response: Response) => response.json())</p><ul><li> 构造函数(私有 http:Http)</li></ul></div></object> - Type Observable<Object> is not assignable to type Observable 从非标准事件创建 Observable(无 EventArgs / EventHandler) - Create Observable from non-standard event (no EventArgs / EventHandler) 从旧版 class(启动方法 + 事件)创建任务(或 Observable) - Create a Task (or Observable) from legacy class (start method + events)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM