You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在RTK Query的queryFn中调度另一个查询并等待其完成后再继续?

在RTK Query的queryFn中等待其他查询完成的优化需求

当前已知可行但繁琐的实现方式

我知道可以通过以下方式实现目标,但在复杂场景下代码会显得混乱:

queryFn: async (
    { emailAddress, password },
    { dispatch },
    _,
    baseQuery,
  ) => {
    await cognito.login(emailAddress, password)
    const { data, error } = await baseQuery({
      url: `me`,
      method: 'GET',
    })
    await dispatch(
      userService.util.updateQueryData('getUser', {}, (draft) => {
        draft = data
      }),
    )
    return { data, error }
  },

期望的优化实现方式

希望通过以下方式实现:无需使用updateQueryData,避免重复编写端点URL,同时可借助其他查询的错误来判断整体流程是否正常:

queryFn: async (
    { emailAddress, password },
    { dispatch },
  ) => {
    await cognito.login(emailAddress, password)
    const {data,error} = await dispatch(userService.endpoints.getUser.initiate({ }, { forceRefetch })) // 这里需要支持await
  },

内容的提问来源于stack exchange,提问作者Kyle Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:10:26