alovajs/alova

[Bug]: 在`useSQRequest`的`middleware`中调用`next`无法获得响应数据

JOU-amjs opened this issue · 0 comments

这是否是一个 Bug?

  • 我已经确认我要报告的是一个 Bug

这个问题是否已经存在?

  • 我已经确认这个 Issue 没有被报告过

Alova 版本

3.0.0-beta.6

前端框架

React

问题描述

如题,发现是useSQRequest的中间件处理有问题,遗留问题

以下是useSQRequest的一段源码

const states = useRequest(methodCreateHandler, {
    ...config,
    __referingObj: referingObj,
    middleware: (ctx, next) => {
      middleware(ctx, () => promiseResolve(undefinedValue as any));
      return silentMiddleware(ctx, next);
    }
  });
});

可见中间件的next传入了一个undefined,所以永远获取不到数据。

期望的表现

silent模式下返回虚拟数据,在queue/static模式下返回真实数据。

const states = useRequest(methodCreateHandler, {
    ...config,
    __referingObj: referingObj,
    middleware: (ctx, next) => {
      const silentMidPromise = silentMiddleware(ctx, next);
      middleware(ctx, () => silentMidPromise);
      return silentMidPromise;
    }
  });
});

复现链接

No response

复现步骤

系统信息

No response

补充说明

No response