我想使用一个可观察的<;字符串[]>;在我的ANGLE应用程序的组件上逐渐显示内容.
- 在第TypeScript条中,我宣布:
export class ResultComponent implements OnInit{
message: string = 'my message for user';
spreadedMessage$: Observable<string> = from(this.message);
progressiveMessage:string = "";
ngOnInit() {
let interval = 1
this.obsMessage$
.pipe(
tap((letter) => {
delay(35*interval),
this.progressiveMessage += letter;
interval++
})
)
.subscribe();
}
}
- 将progressiveMessage绑定到模板
<div> {{ progressiveMessage }} </div>
个
我的完整代码listing can be found here
我try 了第二种方法,效果很好,如下所示,但我想了解一下我使用Observable来取得进步有什么问题.
我的替代解决方案:
-
将
spreadedMessage$: Observable<string> = from(this.message);
更改为spreadedMessage: string[] = [...this.message];
-
在
OnInit()
方法上声明这一点:
for (let i: number = 0; i < this.spreadedMessage.length; i++) {
setTimeout(() => (this.spaceMessager += this.spreadedMessage[i]), 35 * i);
}
有什么主意吗?