Javascript 只运行一次Observable,然后检查是否在-angular2 typescript之后完成
非常新的Javascript 只运行一次Observable,然后检查是否在-angular2 typescript之后完成,javascript,angular,typescript,observable,Javascript,Angular,Typescript,Observable,非常新的观测值,如果这是基本的,我很抱歉,但我已经尝试过谷歌搜索,似乎无法找到我想要的 这是一个非常基本的plunkr示例。 为什么我的初始化的方法在我的服务调用之前不被调用?我以为初始化的可观察的将在我执行可观察时立即执行。forkJoin??我是否需要以某种方式开始这个过程 为什么我的myService.loadOtherData方法似乎从未调用subscribe方法 提前感谢如果你对可观测事物非常陌生,我建议你从一个基本的例子开始 例如:(可能是伪代码) 我相信我看到你把这两者结合起来,
观测值
,如果这是基本的,我很抱歉,但我已经尝试过谷歌搜索,似乎无法找到我想要的
这是一个非常基本的plunkr示例。为什么我的
初始化的方法在我的服务调用之前不被调用?我以为初始化的可观察的将在我执行可观察时立即执行。forkJoin
??我是否需要以某种方式开始这个过程
为什么我的myService.loadOtherData
方法似乎从未调用subscribe方法
提前感谢如果你对可观测事物非常陌生,我建议你从一个基本的例子开始
例如:(可能是伪代码)
我相信我看到你把这两者结合起来,订阅这个主题,然后用一个可观测的数据获取数据?有了这些例子,您是否有足够的信息,或者您是否需要一个非常具体的例子
编辑:
您的this.initialized.subscribe
“启动进程”。
调用loadOtherData函数太晚,这使您无法订阅此函数。当数据返回时初始化。这就是为什么您看不到console.log('initialized')
编辑2:
请注意,BehaviorSubject
保存其数据并在订阅时返回。没有必要用空字符串初始化它。那么,如果我有一个对可观察对象/订阅的引用,有没有办法订阅一个已经完成的可观察对象呢?就像我说的,行为主体在订阅时返回它的数据。所以这是一个可行的方法。
let observable = new Observable<string>(observer => {
if (1 == 1) {
observer.next("one is one");
} else {
observer.error("one is not one");
}
});
observable.subscribe(
response => console.log(response),
error -> console.log(error)
);
let subject = new Subject();
subject.subscribe(response -> console.log(response));
subject.next('hello');