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