method匹配器
method 匹配器是一个在已请求的 method 快照列表中动态查找 method 实例的方法。它一般用于,开发者不确定具体使用哪个 method 时,可以使用 method 匹配器按一定的规则查找。
匹配规则
当使用 method 实例请求时 ,它将被作为快照保存起来,method 匹配器依据 method 实例设置的name
属性在这些 method 快照中进行查找,多个匹配器允许设置相同的name
。
method 实例匹配类型如下:
type MethodFilter =
| string
| RegExp
| {
name: string | RegExp;
filter: (method: Method, index: number, methods: Method[]) => boolean;
// 可选参数,如果传入alova对象则只匹配此alova所创建的Method实例,否则匹配所有alova实例的Method实例
alova?: Alova;
};
在以下函数中都可以使用 method 实例匹配器。
通过 name 属性匹配
通过传入完整的实例名称进行匹配,它的匹配结果是一个数组。
// 每次调用getTodoList时都会生成一个新的method实例,它们的name是相同的
const getTodoList = currentPage =>
alova.Get('/todo/list', {
name: 'todoList'
// ...
});
// 以下表示让name为'todoList'的所有Method实例的缓存失效
invalidateCache('todoList');
通过正则表达式匹配
通过传入正则表达式进行匹配,method 实例的 name 符合正则表达式的都将匹配,它的结果也是一个数组。
// 以下表示让name为以'todo'开头的所有Method实例的缓存失效
invalidateCache(/^todo/);