角网络请求的封装方法

  

很多时候,我很喜欢角的编码风格,特别是角支持打印稿之后,完整的生命周期,完美的钩子函数,都是别的语言所无法替代的。
  

  

这里我来说说我自己的网络请求封装,某种意义上来说,角自己的网络请求封装的很好的,我们没有必要再来画蛇添足,但是,可能是我有那么一点点的代码洁癖吧,喜欢自己的风格样式,所以就有了这一点多余的东西。

  


  

  

这里是角自己的网络请求。

  
      <李> url代表网络请求地址,李   <李>参数网络请求参数   <李>网络请求配置,例如:请求头等李   
        this.http。帖子(url、参数、配置).subscribe (   (res)=比;{//肭蟪晒?   },(err)=比;{//肭笫О?   }()=比;{//肭笸瓿?   }   );   之前      

很多时候我觉得,每一次请求都要写上订阅里面的那些参数,很麻烦,或者说看起来觉得不喜欢,所以,我一般给自己封装一个新的服务服务。同时给每一个需要做网络请求的组件组件实现一个新的接口接口,这里面有很多都是源自java语言的设计思想。

  


  

  

这里创建一个网络接口,来完成网络请求的回调。

        出口接口>   公开发布(回调url:字符串参数:FormData:>   出口类LoginComponent实现OnInit OnHttpImp {   公共validateForm: FormGroup;   公共username_control: AbstractControl;   公共password_control: AbstractControl;      构造函数(私人fb: FormBuilder,   私人http: HttpUtil) {   }      ngOnInit () {   这一点。validateForm=this.fb.group ({   “用户名”:[null, [Validators.required]],   “密码”:[null, [Validators.required]],   记住:(真正的),   });   这一点。username_control=this.validateForm.controls(“用户名”);   这一点。password_control=this.validateForm.controls['密码'];   }         _submitForm () {   const params=new FormData ();   const md5=new md5 ();   const密码=md5.appendStr (this.password_control.value)指标()最终;   参数个数。设置(“用户名”,this.username_control.value);   参数个数。集(‘密码’,password.toString ());   this.http。邮报》('/user/登录参数,这);   }      onResult(代码# 63;结果:HttpResult:数字):空白{//如果多个网络请求,需要传值入代码,根据代码值来判断请求来源//swthch(代码){//100年情况:////中断;//}//如果单个请求,直接处理请求结果。//console.log(结果)      }   }      

上面的htpp请求传输的OnHttpImp对象是这个,那么就说明LoginComponnt组件必须实现OnHttpImp接口,然后实现里面的函数onResult, onError和onComplete。

  

这样处理,就可以将http请求和,数据处理分开了,代码的可读性和简洁性都有大大的提升。

  

<强>
  

  
      <李>可以把上述里面组件里面调用网络请求时传入的,用一个统一的类MCallback来替代,统一处理返回的数据。   <李>可以把所有的网络请求统一放到一个服务里面,通过调用方法名来请求,这样可以实现多次网络请求的耦合,但是个人觉得有点过度封装了。   
  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

角网络请求的封装方法