🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

js-interceptor-lite

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-interceptor-lite

js拦截器

latest
Source
npmnpm
Version
0.0.3
Version published
Weekly downloads
9
-10%
Maintainers
1
Weekly downloads
 
Created
Source

js 实现拦截器功能

downloads repository

使用方法

推荐使用 es6+的继承方式,包含三部分,before, after, handle

模块使用说明
handle子类中定义具体的业务方法
before实例化以后添加执行 handle 的前置操作,通常用来修改和拦截 handle 的参数
after实例化以后添加执行 handle 的后置操作,通常用来修改和拦截 handle 的返回值
invoke使用 instance.invoke(params)调用
import Interceptor from "js-interceptor-lite";
class Demo extends Interceptor {
  // handle函数是被拦截的业务函数
  handle(data) {
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve(100); // 模拟业务返回
      }, 1000);
    });
  }
}
const instance = new Demo();
/**
 *  instance.interceptors.before 在handle之前执行
 *  instance.interceptors.after 在handle之后执行
 *  拦截请求参数,接受两个函数参数
 *    第一个函数参数为前置promise resolve执行
 *    第二个函数参数为前置promise reject执行
 *    其中resolved的参数,为前置阶段的返回值
 * instance.interceptors.before.add(resolved, rejected);
 * instance.interceptors.after.add(resolved, rejected);
 */
instance.interceptors.before.add((params) => {
  console.log(params);
  params++;
  return params;
});
// 如果是异步操作,支持返回promise对象
instance.interceptors.before.add((params) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      params++;
      resolve(params);
    });
  });
});
instance.interceptors.after.add((result) => {
  console.log(params);
  params++;
  return params;
});
/**
 * 使用invoke执行handle函数
 */

instance.invoke(111);

Keywords

拦截器

FAQs

Package last updated on 12 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts