注册 登录
编程论坛 JavaScript论坛

rxjs 执行问题

jiameichen 发布于 2022-05-05 10:13, 921 次点击
你好,我有个场景是这样的。
const a = [1, 2, 3, 4, 5, 6, 7];
    from(a.splice(0, 3))
      .pipe(
        concatMap(val => {
          return of(val).pipe(delay(Math.random() * 1000));
        }),
        repeatWhen(completed => completed.pipe(delay(2000))),
        tap(val => {
          console.log(a);
        }),
        takeWhile(val => a.length > 0)
      )
      .subscribe(() => {});
我的预期是a第一次打印出[4,5,6]。然后a第二次打印出[7]。
但是代码运行起来一直打印出[4,5,6,7]。搞不明白为什么?
可以帮忙看下原因吗?
0 回复
1