我需要发出多个发布请求,直到满足特定条件,因为响应具有发出另一个请求的属性(例如“is more”)。
我不知道可以使用哪个 rxjs 运算符来发出多个请求,将它们连接起来,并在“isMore”返回 false 时关闭可观察对象。
我正在将 Nest.js 中的 httpService 与 axios 一起使用。
如果你能帮助我,非常感谢
对发布请求进行多次响应,直到满足条件为止
如果您要调用同一个端点,则可以使用
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 组件中订阅此函数。