Javascript RxJS:如何在每个组之间发送具有一定延迟的缓冲区大小的值

Javascript RxJS:如何在每个组之间发送具有一定延迟的缓冲区大小的值,javascript,rxjs,Javascript,Rxjs,我有大量可观察的值,我想将其分块成固定大小,然后延迟发射每个块,直到完成 更具体地说,我的场景是,我可能有很多数据要通过http请求发送到服务器,其中每个值都需要一个单独的http请求。所以,如果我有1000个待处理的数据位,我不想一次完成1000个http请求,我可以说是执行10个,然后再延迟一小段时间(可能是几秒钟) 我假设这必须使用buffer操作符,但不能完全让它执行我想要的操作。我看过很多例子,但没有找到一个能做到这一点的 这里有一个简单的例子,我一直在尝试(但不正确) 也可提供 查看

我有大量可观察的值,我想将其分块成固定大小,然后延迟发射每个块,直到完成

更具体地说,我的场景是,我可能有很多数据要通过http请求发送到服务器,其中每个值都需要一个单独的http请求。所以,如果我有1000个待处理的数据位,我不想一次完成1000个http请求,我可以说是执行10个,然后再延迟一小段时间(可能是几秒钟)

我假设这必须使用
buffer
操作符,但不能完全让它执行我想要的操作。我看过很多例子,但没有找到一个能做到这一点的

这里有一个简单的例子,我一直在尝试(但不正确)

也可提供

查看输出,我们可以看到是否将它们分成10个块,但它只需等待5000毫秒,然后将它们全部输出

我希望前10个直接发射,然后每个后续的都被延迟,在这种情况下,延迟5秒

有人对怎么做有什么建议吗


提前感谢。

您可能需要尝试以下方法:

 const source = range(1, 1000);

 const example = source
   .pipe(
     bufferCount(10),
     concatMap(x => of(x).pipe(delay(5000))),
    );
   
 const subscribe = example.subscribe(val =>
   console.log('output:', val)
 );

这能回答你的问题吗?
 const source = range(1, 1000);

 const example = source
   .pipe(
     bufferCount(10),
     concatMap(x => of(x).pipe(delay(5000))),
    );
   
 const subscribe = example.subscribe(val =>
   console.log('output:', val)
 );