摘要:如何在中使用要在中使用要使用的內(nèi)置服務。用來拒絕可以為字符串對象等。獲取的執(zhí)行狀態(tài)然后使用這個函數(shù)來傳遞它。無論是成功了還是失敗了當結(jié)果可用之后都會立即異步調(diào)用或者在被執(zhí)行或者拒絕之前可能會被調(diào)用到多次以提供過程狀態(tài)的提示。
如何在 AngularJS 中使用 Promise
要在 AngularJS 中使用 Promise, 要使用 AngularJS 的內(nèi)置服務 $q。
我們可以先使用 $q 的 defer() 方法創(chuàng)建一個 deferred 對象, 然后通過 deferred 對象的 promise 屬性, 將這個對象變成一個 promise 對象; 這個 deferred 對象還提供了三個方法, 分別是 resolve(), reject(), notify()。
HTML 代碼:
demo
JS 代碼:
angular.module("myApp", []) .controller("myController", ["$scope", "$q", function($scope, $q) { $scope.flag = true $scope.handle = function() { // 創(chuàng)建一個 deferred 對象 var deferred = $q.defer() // 創(chuàng)建一個 promise 對象 var promise = deferred.promise promise.then(function(result) { alert("Success: " + result) }, function(error) { alert("Fail: " + error) }) if ($scope.flag) { deferred.resolve("you are lucky!") } else { deferred.reject("sorry, it lost!") } } }])
$q 的 defer() 方法創(chuàng)建的對象具有哪些方法
resolve(value): 用來執(zhí)行 deferred promise, value 可以為字符串, 對象等。
reject(value): 用來拒絕 deferred promise, value 可以為字符串, 對象等。
notify(value): 獲取 deferred promise 的執(zhí)行狀態(tài), 然后使用這個函數(shù)來傳遞它。
then(successFunc, errorFunc, notifyFunc): 無論 promise 是成功了還是失敗了, 當結(jié)果可用之后, then 都會立即異步調(diào)用 successFunc, 或者 errorFunc, 在 promise 被執(zhí)行或者拒絕之前, notifyFunc 可能會被調(diào)用0 到 多次, 以提供過程狀態(tài)的提示。
catch(errorFunc)
finally(callback)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86878.html
摘要:規(guī)范中文是提供的一個服務。實際調(diào)用這個方法最終在此處加入到隊列中定義此處調(diào)用進入此處是鏈式調(diào)用傳參關(guān)鍵,實際是上一個的的返回值,所以能知道,如果需要所有的都能取到異步任務的返回值,就得在的函數(shù)中,將值返回。 promise是什么 這里不解釋promise是什么,因為我相信你來看文章的時候已經(jīng)知道你什么是promise了。此處有promise規(guī)范。 Promise/A+規(guī)范 中文Prom...
摘要:異步加載各個組件就很有必要。在這里我就以為框架來進行異步加載說明。而為了將服務進行異步加載我們不能用普通的或者。而需要調(diào)用或者如果采用進行編譯打包的話就需要的支持,這樣可以對進行拆分打包,達到異步加載的目的。 ui-route相比于angularjs的原生視圖路由更好地支持了路由嵌套,狀態(tài)轉(zhuǎn)移等等。隨著視圖不斷增加,打包的js體積也會越來越大,比如我在應用里面用到了wangeditor...
摘要:我們將使用方法創(chuàng)建一個。我們傳遞一個布爾類型,這個就是我們早先討論的的參數(shù)。再使用和構(gòu)建博客教程系列的第三部分見。所有的源碼都在上,但是應用程序的源碼還沒有放上去,因為我們還沒有完成它,等到第三部分寫完以后再放全部的源碼到上。 注:該文作者是 John Kevin M. Basco,原文地址是 Building a blog using Flask and AngularJS P...
摘要:注意并不是一個的值組合,比如有方法,所以不能這樣獲取屬性。需要創(chuàng)建一個自己的應用,并在初始化的時候替換掉里的。關(guān)于通知發(fā)生變化除了通過,還可以借助或者。 為什么選擇這兩個庫做 Todo AVOS Cloud JavaScript SDK 負責把數(shù)據(jù)存儲在服務器,提供了 數(shù)據(jù)查詢,保存,更新等常用操作的方法。AngularJS 對于增刪改查類型的應用場景非常合適。這塊主要用到了 Ang...
閱讀 1046·2021-09-22 15:26
閱讀 2624·2021-09-09 11:52
閱讀 1917·2021-09-02 09:52
閱讀 2254·2021-08-12 13:28
閱讀 1192·2019-08-30 15:53
閱讀 522·2019-08-29 13:47
閱讀 3393·2019-08-29 11:00
閱讀 3105·2019-08-29 10:58