Javascript 有没有办法忽略rxjs管道中的计时器?
基本上,我有一个管道,意味着打印文本缓慢,随着时间的推移,但我想有一个选项,打印它立即出来,这种管道这样做,它仍然有一个小的延迟(假设1毫秒) 如果计时器为0,是否可以使此管道忽略计时器?从技术上讲,如果Javascript 有没有办法忽略rxjs管道中的计时器?,javascript,rxjs,Javascript,Rxjs,基本上,我有一个管道,意味着打印文本缓慢,随着时间的推移,但我想有一个选项,打印它立即出来,这种管道这样做,它仍然有一个小的延迟(假设1毫秒) 如果计时器为0,是否可以使此管道忽略计时器?从技术上讲,如果this.delay设置为0,我可以制作第二个管道来运行,但我觉得必须有一种方法允许它在管道中工作 printString(s: string = null, person: string = "END", buttons: DialogueButtondata[] = []
this.delay
设置为0,我可以制作第二个管道来运行,但我觉得必须有一种方法允许它在管道中工作
printString(s: string = null, person: string = "END", buttons: DialogueButtondata[] = []) {
this.isPrinting = true;
const obs = new Subject();
const out = new OutputElement({ person: person });
this.target.push(out);
timer(0, this.delay)
.pipe(take(s.length), finalize(() => {
if (buttons) {
buttons.forEach((element) => {
this.buttons.push(element);
});
}
obs.next();
}))
.subscribe(i => {
out.text += s[i];
});
return obs;
}
你的意思是像
const x$=this.delay==0 of(未定义)?:定时器(0,这个延迟);x$.pipe(…)
@AluanHaddad,如果此.delay
为0,则它似乎不会执行。我需要它仍然执行,但是计时器负责延迟出现的字母。我想你可以用一个条件来包装整个链。我不确定是什么问题。