angular - Observable.next() 不是函数

标签 angular rxjs observable

嗨,我是 Angular 新手。

我不知道为什么我不能在我的 Observable 中设置新值

我的代码:

resultJob: Observable<any> = Observable.of("PENDING");

ngOnInit() {
    this.resultJob.subscribe(result => {
        result.next("SUCCESS")
        result.complete()
    })
}

此代码返回 result.next is not a function

最佳答案

Observable 上没有 next() ;仅在 Subject 和 BehaviorSubject 上,它们扩展了 Subject(并且都扩展了 Observable)。

你需要做的是:

resultJob: Subject<string> = new BehaviorSubject<string>("PENDING");

与 Subject 相比,BehaviorSubject 使用在流中推送的第一个值进行初始化。这似乎是你想要做的。

结果也是字符串类型,而不是 Observable 类型。您想在 resultJob 上调用 next(),而不是在 result(流中的元素)上调用。但我不明白你为什么在订阅中这样做。您将通过这种方式获得循环调用:您在流中推送一个新元素,并通过推送另一个元素来对其检测使用react,依此类推......

关于angular - Observable.next() 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50099517/

相关文章:

Angular 5 应用程序未注册服务 worker

响应式(Reactive)形式的 Angular matDatepicker

typescript - Angular 2 - 在 (observableData | async) 尚未解析时显示加载信息

angular - 如何正确使用 RxJS 为返回到 Observable 的数组的每个对象添加一个新字段?

Angular Material Table - 映射服务器响应以满足 DataSource 契约(Contract)

Angular 2 : Component host property

javascript - Angular2(混合模式)无法将指令降级为 NG1(ES5)

javascript - Rxjs:如何仅在之前发生另一个事件时才订阅事件?

c# - 可观察的创建异步

javascript - 无法读取未定义 [Angular2] 的属性 'isStopped'