-1
Observableを使用すると、接続されたユーザーでストリームを生成したいとします。使用していないと私はコンソールログが表示されていない「作成」観測可能なストリームを作成する
import {Injectable} from '@angular/core';
import {Subject, BehaviorSubject, Observable} from 'rxjs';
import {User} from "./user";
import {IUserService} from "./IUserService";
let initialConnectedUsers: User[] = [];
interface IUsersOperation extends Function {
(users: User[]): User[];
}
@Injectable()
export class UserService implements IUserService{
currentUser: Subject<User> = new BehaviorSubject<User>(null);
newUser: Subject<User> = new Subject<User>();
connectedUsers: Observable<User[]>;
updates: Subject<any> = new Subject<any>();
create: Subject<User> = new Subject<User>();
constructor(){
this.connectedUsers = this.updates
.scan((users: User[], operation: IUsersOperation) => {
return operation(users);
},
initialConnectedUsers)
.publishReplay(1)
.refCount();
this.create.map(function (user: User): IUsersOperation {
return (users: User[]) => {
console.log('foo');
return users.concat(user);
}
}).subscribe(this.updates);
this.newUser.subscribe(this.create);
}
public setCurrentUser(newUser: User): void {
this.currentUser.next(newUser);
this.newUser.next(newUser);
}
}
export var userServiceInjectables: Array<any> = [
UserService
];
しかし、私の場合で観察:本で
は、私は以下のコードに非常によく似exempleをお読みください。 (exemple用:app.component.ts)アプリケーションの初期化時
「観察可能な私の場合には 『*どういう意味*』使用しない」を作成しますか? – martin
あなたはここから(https://github.com/ng-book/angular2-rxjs-chat/blob/master/app/ts/services/MessagesService.ts)、私に影響を与えたコードを読むことができます。そのコードでは、connectedUsersに相当するものにobservablesの作成と更新が行われます – mickaelw