New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

js-interceptor-es

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-interceptor-es

js拦截器

Source
npmnpm
Version
0.0.2
Version published
Weekly downloads
2
-50%
Maintainers
1
Weekly downloads
 
Created
Source

js 实现拦截器功能

使用方法 ES6 +

import Interceptor from "js-interceptor-es";
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;
});
// 也支持异步
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 20 Apr 2020

Related posts