也许我错过了一些东西。我找不到 Observable 及其语法的简单教程。我正在使用 Angular,我需要从服务中调用一个函数(在组件中定义)。我读了这个 解决方案。但是我不知道如何更改服务中创建的 Observable 中的值(也许创建不是最好的方法)。
我在解决方案中有一个组件:
@Component({
selector: 'my-component',
...
)}
export class MyComponent {
constructor(myService:MyService) {
myService.condition.subscribe(value => doSomething(value));
}
doSomething(value) {
if (value) // do stuff
else // other stuff
}
}
这是我的服务:
import { Injectable } from '@angular/core';
import { Observable} from 'rxjs/Observable';
@Injectable()
export class MyService {
private condition: Observable<boolean>;
constructor() {
this.condition= new Observable(ob => {ob.next(false); })
// maybe ob.next is not the best solution to assign the value?
}
change() {// how can i change the value of condition to 'true', to call
// the doSomething function in the component??
}
}
原文由 Johannes 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 我的其他答案 的评论(保留,因为它可能对某人有帮助),您似乎想利用某些东西的力量 随着时间的推移 发出值。
正如 DOMZE 建议的那样,使用主题,但这里有一个(简单的)示例,展示 了如何 做到这一点。尽管 直接使用 Subject 显然有一些陷阱要避免,但我将把它留给你。
普朗克
以我的拙见,对于这种情况,我不明白为什么简单的 Service/Observable 是不够的,但这不关我的事。
进一步阅读: Angular 2 - 行为主体与可观察?