【发布时间】:2018-12-31 18:36:33
【问题描述】:
我有这个工作。收到套接字消息后,立即发出一个值,此后每隔一秒发出一个值(增加年龄),直到再次收到套接字。
但是,无论是否收到套接字,我都希望它每秒发出一次。所以它会开始每秒发射一次,但是当收到套接字时,属性会更改为新的,并且它们会每秒发射一次。
不知道该怎么做。
updated: Observable<TargetDevice>;
this.updated = socketService.onMessage.pipe(
filter(
message =>
message.messageType === SocketIoMessageType.Device &&
message.data.id === this.id
),
map((message: SocketIoMessage) => <Device>message.data),
tap(d => this.setProps(d)),
switchMap(d =>
timer(0, 1000).pipe(
tap(tick => (this.age = d.age + tick)),
map(() => this)
)
)
);
【问题讨论】:
-
所以你想要一个不是来自套接字的起始值,只是开始你的一秒间隔还是我错过了什么?