微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redux Observable取消先前的请求

如何解决Redux Observable取消先前的请求

我有一部史诗,可以发出多种动作


export const abc = action$ =>
  action$.pipe(
    filter(isActionOf(fetchAllSearchOptions)),mergeMap((action) => {
      return concat(
        concat(
          of(fetchOptions({term: 'a',...action.payload})),of(fetchOptions({term: 'b',of(fetchOptions({term: 'c',),concat(
            of(fetchOptions({term: 'd',of(fetchOptions({term: 'e',of(fetchOptions({term: 'f',)
      )
    })
  );

fetchOptions具有mergeMap,因此可以发送所有调用,但不会在参数更改时取消挂起的请求。

这将向服务器调用6个请求,如果有任何参数更改,我们将再次调用它。这会向服务器调用很多请求,但不会取消先前的请求。怎么样 如何取消以前的请求

解决方法

在给定的示例中,使用switchMap代替mergeMapmergeMap不会取消任何由先前值引起的订阅,但是switchMap会取消。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。