Javascript 有没有办法忽略rxjs管道中的计时器?

Javascript 有没有办法忽略rxjs管道中的计时器?,javascript,rxjs,Javascript,Rxjs,基本上,我有一个管道,意味着打印文本缓慢,随着时间的推移,但我想有一个选项,打印它立即出来,这种管道这样做,它仍然有一个小的延迟(假设1毫秒) 如果计时器为0,是否可以使此管道忽略计时器?从技术上讲,如果this.delay设置为0,我可以制作第二个管道来运行,但我觉得必须有一种方法允许它在管道中工作 printString(s: string = null, person: string = "END", buttons: DialogueButtondata[] = []

基本上,我有一个管道,意味着打印文本缓慢,随着时间的推移,但我想有一个选项,打印它立即出来,这种管道这样做,它仍然有一个小的延迟(假设1毫秒)

如果计时器为0,是否可以使此管道忽略计时器?从技术上讲,如果
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,则它似乎不会执行。我需要它仍然执行,但是计时器负责延迟出现的字母。我想你可以用一个条件来包装整个链。我不确定是什么问题。