在rxjs-Stream中,我想有条件地插入数据,延迟,然后是原始事件.

from(Array(10).keys())
  .pipe(
    map(i => ({ data: i })),
    concatMap(e => {
      if (e.data === 3) {
        return of(e)
          .pipe(
            delay(500),
          );
      }
      return of(e);
    }),
  )
  .subscribe(i => console.log(i));

这会在{ data: 3 }之前产生延迟.

但我想emits { data: 'a' },延迟,{ data: 3 }.

推荐答案

你可以用merge种方法来达到你想要的效果:

 concatMap((e) => {
      if (e.data === 3) {
        return merge(of({ data: 'a' }), of(e).pipe(delay(500)));
      }
      return of(e);
    })

Stackblitz

Javascript相关问答推荐

如何访问react路由v6加载器函数中的查询参数/搜索参数

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

我试图实现用户验证的reduxstore 和操作中出了什么问题?

如何将连续的十六进制字符串拆分为以空间分隔的十六进制块,每个十六进制块包含32个二元组?

我开始使用/url?q=使用Cheerio

使用Java脚本根据按下的按钮更改S文本

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

单个HTML中的多个HTML文件

在Java中寻找三次Bezier曲线上的点及其Angular

如何在.NET Core中将chtml文件链接到Java脚本文件?

将异步回调转换为异步生成器模式

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

匹配一个或多个可选重复的特定模式

用于测试其方法和构造函数的导出/导入类

重新呈现-react -筛选数据过多

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

有没有办法在R中创建一张具有多个色标的热图?

无法向甜甜圈图表上的ChartJSImage添加可见标签

Google OAuth 2.0库和跨域开放程序的问题-策略错误

正在发出错误的URL请求