| 12345678910111213141516171819 |
- /**
- * 复合拦截器
- * @example compose((request, next) => {}, (request, next) => {})
- */
- export function compose(...interceptors) {
- return (request, next) => {
- const combined = (index) => {
- if (index === interceptors.length) {
- // 结尾
- return next();
- }
- else {
- const interceptor = interceptors[index];
- return interceptor(request, () => combined(index + 1));
- }
- };
- return combined(0);
- };
- }
|