Interception

Interception people think

1, axios request response blocker

// add request interceptor axios.interceptors.request.use (function (config) { 
    // do something before sending a request 
    return config; 
  }, function (error) { 
    // do something to request error 
    return Promise.reject (error); 
  }); // add response blocker axios.interceptors.response.use (function (response) { 
    // do something response data 
    return response; 
  }, function (error) { 
    // do error response something 
    return Promise.reject (error); 
  });

2, axios the configuration and transformResponse transformRequest

  // `transformRequest` allowed before sending to the server, the data modification request 
  // only be used in a 'PUT', 'POST' and 'PATCH' request method several 
  functions // later in the array must return a string, or an ArrayBuffer, or Stream 
  transformRequest: [function (data) { 
    // perform any data conversion processing of 

    return data; 
  }], 

  // `transformResponse` in the transmission before then / catch to allow to modify the response data 
  transformResponse: [function (data ) { 
    // perform any data conversion processing of 

    return data; 
  }],

3、Object.defineProperty(object, propertyName, {})

Object.defineProperty(obj, key, {
    get(){
        Dep.target && dep.addDep(Dep.target);
        return val;
    },
    set(newVal){
        if(newVal === val){
            return;
        }
        val = newVal;
        dep.notify();
    }
})

4, the interior of the class and get SET, intercept access attribute behavior

class MyClass {
  constructor() {
    // ...  }
  get prop() {
    return 'getter';
  }
  set prop(value) {
    console.log('setter: '+value);
  }}


reference:

https://www.kancloud.cn/yunye/axios/234845

http://es6.ruanyifeng.com/#docs/class

Guess you like

Origin blog.51cto.com/8898126/2423316