Skip to content

请求生命周期 ​

在 setup 中解析服务,再在事件与异步操作中使用已经保存的服务。ABP 注入上下文是同步的。

只采用最新结果 ​

useLatest<T>() 在新的 run 开始时取消上一次操作,将它提供的信号传入请求:

ts
import { inject, RestService, useLatest } from '@lsw-abpvue/core';

const rest = inject(RestService);
const latest = useLatest<string[]>();
const search = (term: string) => latest.run(signal =>
  rest.request<never, string[]>(
    { method: 'GET', url: '/api/app/search', params: { term } },
    { signal },
  ),
);

被替代的操作返回 undefined,当前操作的错误仍会拒绝。只有结果已定义时才赋值。这适合搜索建议;useListService 已经处理了列表查询的协调。

防抖与清理 ​

useDebounceFn(callback, milliseconds) 返回可调用函数,并提供 .cancel(),所属作用域销毁时会取消计时器。

useSubscriptions() 使用 .add() 收集取消订阅函数,作用域销毁时统一执行,.clear() 可以提前清理。语言或会话监听返回的取消订阅函数应注册到这里,避免页面离开后仍保留回调。

非官方社区项目,采用 MIT 许可证,与 Volosoft 无关。