rxjs,switchMap,interval在期望流的地方提供了“ undefined”

时间:2019-03-18 10:50:16

标签: angular rxjs rxjs6

尝试从服务器获取数据,每10秒间隔一次到服务。 如果返回了价格,则停止间隔。下面的代码:

但我收到错误消息:

  

错误TypeError:您提供了“未定义”流的位置   预期。您可以提供一个Observable,Promise,Array或Iterable。

代码:

public Respond() {

this.dataService.WaitingForServiceRespond()
  .pipe((
    debounceTime(2000),
    switchMap((r: any) => {
      if (!r.price) {
        setInterval(() => {
          return this.Respond();
        }, 10000)
      } else {

        this.dataService.user.payment = r;
        console.log('price returned', r);
        return ''
      }
    })
  ))
  .subscribe(e => {
    console.log(e)
  })

}

1 个答案:

答案 0 :(得分:1)

问题出在您的switchMap上。它期望返回一个流。使用setInterval时不返回任何内容。您可以通过返回Observable的{​​{1}}而不是调用interval()来返回rxjs

setInterval()