1. methods:{
    2. cancelRequest(){
    3. if(typeof this.source === 'function'){
    4. this.source('终止请求')
    5. }
    6. }
    7. },
    8. watch:{
    9. message(newVal){
    10. /* 防止多次触发 */
    11. // clearTimeout()
    12. // setTimeout()
    13. var that = this;
    14. this.cancelRequest();
    15. this.axios.get("/api/searchList?cityId=10&kw="+newVal,{
    16. cancelToken: new this.axios.CancelToken(function(c) {
    17. console.log(1);
    18. that.source = c;
    19. })
    20. }).then((res)=>{
    21. // console.log(res.data.data.movies)
    22. var msg = res.data.msg;
    23. var movies = res.data.data.movies;
    24. if(msg && movies){
    25. this.moviesList = res.data.data.movies.list;
    26. }
    27. }).catch((err) => {
    28. if (this.axios.isCancel(err)) {
    29. console.log('Rquest canceled', err.message); //请求如果被取消,这里是返回取消的message
    30. } else {
    31. //handle error
    32. console.log(err);
    33. }
    34. })
    35. }
    36. }