我试图找出承诺...简单地制作一个$ http请求,然后根据是否成功(.success())&与使用q.resolve()的promise(q = $ q.defer())相比,它失败了(.fail())?
答案 0 :(得分:3)
<nav class="navbar navbar-default">
<div id="menu" class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle" aria-expanded="true" data-target="#bs-example-navbar-collapse-1" data-toggle="collapse" type="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="">TRILLSOFT</a>
</div>
<div id="bs-example-navbar-collapse-1" class="navbar-collapse collapse in" aria-expanded="true" style="">
<ul class="nav nav-pills">
<li class="active">
<a href="#TAPL" data-toggle="tab" aria-expanded="true">TAPL</a>
</li>
<li class="">
<a href="#productorderedit" data-toggle="tab" aria-expanded="false">productorderedit</a>
</li>
</ul>
<div class="tab-content">
<div id="TAPL" class="tab-pane fade active in">
<li class="dropdown open">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" aria-expanded="true">
Project Orders
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li>
<a href="#">Project Order Lookup</a>
</li>
<li>
<a href="#">Project Order Lookup of my Active projects</a>
</li>
</ul>
</li>
</div>
<div id="productorderedit" class="tab-pane fade">
<li>
<a href="#">Release</a>
</li>
<li>
<a href="#">FSC Labels</a>
</li>
<li>
<a href="#">Unrelease Selected Items</a>
</li>
</div>
</div>
</div>
<ul class="nav nav-pills navbar-right">
<li>
<div>
Logged in as dshah |
<a href="/app_dev.php/logout"> Logout</a>
</div>
</li>
</ul>
</div>
本身使用$http
。这两项服务都没有在同一级别运作。
$q
返回可以解决或拒绝的承诺。这意味着您正在使用服务提供的承诺($ http)。在内部,$http.get(url)
会调用$http
,然后调用$q.defer()
或$q.resolve()
。这会调用您的$q.reject()
或.success()
方法。
.fail()
是一项创建自己承诺的服务。
使用$q
是了解承诺的好方法,但在您的情况下,$q
已经为您完成了这项工作。
答案 1 :(得分:0)
无。 $http
方法返回promise。简而言之,它们也可以与then
链接。 success
和fail
仅限解决方案,仅限拒绝then
。