可观察中的多个发布请求

问题描述 投票:0回答:1

我需要发出多个发布请求,直到满足特定条件,因为响应具有发出另一个请求的属性(例如“is more”)。

我不知道可以使用哪个 rxjs 运算符来发出多个请求,将它们连接起来,并在“isMore”返回 false 时关闭可观察对象。

我正在将 Nest.js 中的 httpService 与 axios 一起使用。

如果你能帮助我,非常感谢

对发布请求进行多次响应,直到满足条件为止

typescript rxjs nest
1个回答
0
投票

如果您要调用同一个端点,则可以使用

takeWhile
操作。想法如下:

import axios from 'axios';
import { from, of } from 'rxjs';
import { takeWhile, catchError } from 'rxjs/operators';

export const fetchDataUntilNoMore = (baseUrl, endpoint) => {
  return from(axios.get(`${baseUrl}/${endpoint}`)).pipe(
    takeWhile((response) => response.data.isMore),
    catchError((error) => {
      // Handle any errors here
      return of(error);
    })
  );
};

然后,您可以在 Next.js 组件中订阅此函数。

© www.soinside.com 2019 - 2024. All rights reserved.