小魏事事顺 發表於 2019-10-4 12:07:00

angular 中使用 axios 发起 http 请求

<p><span style="font-size: 18px"><strong>angular 中使用 axios</strong></span></p>
<div style="color: rgba(197, 200, 198, 1); line-height: 19px; font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgba(30, 30, 30, 1)">
<div><span style="color: rgba(154, 155, 153, 1)">/**</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*&nbsp;在angular&nbsp;中引入第三方&nbsp;http&nbsp;模块的使用,&nbsp;以&nbsp;axios&nbsp;为例</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*&nbsp;有两种使用方法:(本文使用Promise简单封装)</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*&nbsp;一.&nbsp;直接在要使用请求的组件中&nbsp;import&nbsp;axios&nbsp;from&nbsp;'axios',&nbsp;调用:&nbsp;axios.get/&nbsp;axios.post&nbsp;...</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*&nbsp;二.&nbsp;封装成服务:&nbsp;</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.&nbsp;引入&nbsp;axios:&nbsp;import&nbsp;axios&nbsp;from&nbsp;'axios'</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.&nbsp;用&nbsp;promise&nbsp;rxjs&nbsp;回调函数&nbsp;3&nbsp;种方式任选其一进行封装</span></div>
<div><span style="color: rgba(154, 155, 153, 1)">&nbsp;*/</span></div>
</div>
<p>&nbsp;</p>
<p>1. axios.service.ts中</p>
<div style="color: rgba(197, 200, 198, 1); line-height: 19px; font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgba(30, 30, 30, 1)">
<div><span style="color: rgba(152, 114, 162, 1)">import<span style="color: rgba(197, 200, 198, 1)">&nbsp;{&nbsp;<span style="color: rgba(96, 137, 180, 1)">Injectable<span style="color: rgba(197, 200, 198, 1)">&nbsp;}&nbsp;<span style="color: rgba(152, 114, 162, 1)">from<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(154, 168, 58, 1)">'@angular/core'<span style="color: rgba(197, 200, 198, 1)">;</span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(152, 114, 162, 1)">import<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(96, 137, 180, 1)">axios<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(152, 114, 162, 1)">from<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(154, 168, 58, 1)">'axios'</span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">@<span style="color: rgba(206, 103, 0, 1)">Injectable<span style="color: rgba(197, 200, 198, 1)">({</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;providedIn:&nbsp;<span style="color: rgba(154, 168, 58, 1)">'root'</span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">})</span></div>
<div><span style="color: rgba(152, 114, 162, 1)">export<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(152, 114, 162, 1)">class<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(155, 0, 0, 1)">AxiosService<span style="color: rgba(197, 200, 198, 1)">&nbsp;{</span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;<span style="color: rgba(152, 114, 162, 1)">constructor<span style="color: rgba(197, 200, 198, 1)">()&nbsp;{&nbsp;}</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;<span style="color: rgba(206, 103, 0, 1)">AxiosGet<span style="color: rgba(197, 200, 198, 1)">(<span style="color: rgba(96, 137, 180, 1)">api<span style="color: rgba(197, 200, 198, 1)">)&nbsp;{</span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgba(152, 114, 162, 1)">return<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(103, 104, 103, 1)">new<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(155, 0, 0, 1)">Promise<span style="color: rgba(197, 200, 198, 1)">((<span style="color: rgba(96, 137, 180, 1)">resolve<span style="color: rgba(197, 200, 198, 1)">,&nbsp;<span style="color: rgba(96, 137, 180, 1)">reject<span style="color: rgba(197, 200, 198, 1)">)<span style="color: rgba(152, 114, 162, 1)">=&gt;<span style="color: rgba(197, 200, 198, 1)">{</span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgba(96, 137, 180, 1)">axios<span style="color: rgba(197, 200, 198, 1)">.<span style="color: rgba(206, 103, 0, 1)">get<span style="color: rgba(197, 200, 198, 1)">(<span style="color: rgba(96, 137, 180, 1)">api<span style="color: rgba(197, 200, 198, 1)">).<span style="color: rgba(206, 103, 0, 1)">then<span style="color: rgba(197, 200, 198, 1)">((<span style="color: rgba(96, 137, 180, 1)">res<span style="color: rgba(197, 200, 198, 1)">)<span style="color: rgba(152, 114, 162, 1)">=&gt;<span style="color: rgba(197, 200, 198, 1)">{</span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgba(206, 103, 0, 1)">resolve<span style="color: rgba(197, 200, 198, 1)">(<span style="color: rgba(96, 137, 180, 1)">res<span style="color: rgba(197, 200, 198, 1)">)</span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})</span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;})</span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;}</span></div>
<div><span style="color: rgba(197, 200, 198, 1)">}</span></div>
</div>
<p>2. 根模块中注入:</p>
<div style="color: rgba(197, 200, 198, 1); line-height: 19px; font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgba(30, 30, 30, 1)">
<div><span style="color: rgba(152, 114, 162, 1)">import<span style="color: rgba(197, 200, 198, 1)">&nbsp;{&nbsp;<span style="color: rgba(96, 137, 180, 1)">AxiosService<span style="color: rgba(197, 200, 198, 1)">&nbsp;}&nbsp;<span style="color: rgba(152, 114, 162, 1)">from<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(154, 168, 58, 1)">'../service/axios.service'</span></span></span></span></span></span></span></div>
</div>
<p>&nbsp;</p>
<div style="color: rgba(197, 200, 198, 1); line-height: 19px; font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgba(30, 30, 30, 1)">
<div><span style="color: rgba(197, 200, 198, 1)">providers:&nbsp;[<span style="color: rgba(96, 137, 180, 1)"><span style="color: rgba(197, 200, 198, 1)"><span style="color: rgba(96, 137, 180, 1)"><span style="color: rgba(197, 200, 198, 1)"><span style="color: rgba(96, 137, 180, 1)"><span style="color: rgba(197, 200, 198, 1)"><span style="color: rgba(96, 137, 180, 1)">AxiosService<span style="color: rgba(197, 200, 198, 1)">]</span></span></span></span></span></span></span></span></span></div>
</div>
<p>&nbsp;</p>
<p>3. 组件中使用:</p>
<div style="color: rgba(197, 200, 198, 1); line-height: 19px; font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 14px; font-weight: normal; white-space: pre; background-color: rgba(30, 30, 30, 1)">
<div><span style="color: rgba(154, 155, 153, 1)">//&nbsp;引入服务</span></div>
<div><span style="color: rgba(152, 114, 162, 1)">import<span style="color: rgba(197, 200, 198, 1)">&nbsp;{&nbsp;<span style="color: rgba(96, 137, 180, 1)">AxiosService<span style="color: rgba(197, 200, 198, 1)">&nbsp;}&nbsp;<span style="color: rgba(152, 114, 162, 1)">from<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(154, 168, 58, 1)">'../../service/axios.service'</span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">@<span style="color: rgba(206, 103, 0, 1)">Component<span style="color: rgba(197, 200, 198, 1)">({</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;selector:&nbsp;<span style="color: rgba(154, 168, 58, 1)">'app-news'<span style="color: rgba(197, 200, 198, 1)">,</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;templateUrl:&nbsp;<span style="color: rgba(154, 168, 58, 1)">'./news.component.html'<span style="color: rgba(197, 200, 198, 1)">,</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;styleUrls:&nbsp;[<span style="color: rgba(154, 168, 58, 1)">'./news.component.css'<span style="color: rgba(197, 200, 198, 1)">]</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">})</span></div>
<div><span style="color: rgba(152, 114, 162, 1)">export<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(152, 114, 162, 1)">class<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(155, 0, 0, 1)">NewsComponent<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(152, 114, 162, 1)">implements<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(199, 68, 74, 1)">OnInit<span style="color: rgba(197, 200, 198, 1)">&nbsp;{</span></span></span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;<span style="color: rgba(152, 114, 162, 1)">public<span style="color: rgba(197, 200, 198, 1)">&nbsp;newsList<span style="color: rgba(103, 104, 103, 1)">:<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(199, 68, 74, 1)">any<span style="color: rgba(197, 200, 198, 1)">[]</span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;<span style="color: rgba(152, 114, 162, 1)">constructor<span style="color: rgba(197, 200, 198, 1)">(<span style="color: rgba(152, 114, 162, 1)"><span style="color: rgba(197, 200, 198, 1)"><span style="color: rgba(96, 137, 180, 1)"><span style="color: rgba(103, 104, 103, 1)"><span style="color: rgba(197, 200, 198, 1)"><span style="color: rgba(155, 0, 0, 1)"><span style="color: rgba(197, 200, 198, 1)"><span style="color: rgba(152, 114, 162, 1)">public<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(96, 137, 180, 1)">$axios<span style="color: rgba(103, 104, 103, 1)">:<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(155, 0, 0, 1)">AxiosService<span style="color: rgba(197, 200, 198, 1)">)&nbsp;{&nbsp;}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;<span style="color: rgba(206, 103, 0, 1)">ngOnInit<span style="color: rgba(197, 200, 198, 1)">()&nbsp;{</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;}</span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;<span style="color: rgba(206, 103, 0, 1)">axiosGetData<span style="color: rgba(197, 200, 198, 1)">()&nbsp;{</span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgba(152, 114, 162, 1)">let<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(96, 137, 180, 1)">url<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(103, 104, 103, 1)">=<span style="color: rgba(197, 200, 198, 1)">&nbsp;<span style="color: rgba(154, 168, 58, 1)">'/search/interface/getrelatequery?word=%E6%99%8B%E6%B1%9F'</span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgba(199, 68, 74, 1)">this<span style="color: rgba(197, 200, 198, 1)">.<span style="color: rgba(96, 137, 180, 1)">$axios<span style="color: rgba(197, 200, 198, 1)">.<span style="color: rgba(206, 103, 0, 1)">AxiosGet<span style="color: rgba(197, 200, 198, 1)">(<span style="color: rgba(96, 137, 180, 1)">url<span style="color: rgba(197, 200, 198, 1)">).<span style="color: rgba(206, 103, 0, 1)">then<span style="color: rgba(197, 200, 198, 1)">((<span style="color: rgba(96, 137, 180, 1)">data<span style="color: rgba(197, 200, 198, 1)">)<span style="color: rgba(152, 114, 162, 1)">=&gt;<span style="color: rgba(197, 200, 198, 1)">{</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgba(199, 68, 74, 1)">console<span style="color: rgba(197, 200, 198, 1)">.<span style="color: rgba(152, 114, 162, 1)">log<span style="color: rgba(197, 200, 198, 1)">(<span style="color: rgba(154, 168, 58, 1)">"axios&nbsp;GET&nbsp;请求:&nbsp;"<span style="color: rgba(197, 200, 198, 1)">,&nbsp;<span style="color: rgba(96, 137, 180, 1)">data<span style="color: rgba(197, 200, 198, 1)">)</span></span></span></span></span></span></span></span></span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;&nbsp;&nbsp;})</span></div>
<div><span style="color: rgba(197, 200, 198, 1)">&nbsp;&nbsp;}</span></div>
<div><span style="color: rgba(197, 200, 198, 1)">}</span></div>
<div>&nbsp;</div>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/monkey-K/p/11621801.html
頁: [1]
查看完整版本: angular 中使用 axios 发起 http 请求