中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Angular中的Promise對象($q介紹)
來源:易賢網 閱讀:1153 次 日期:2015-03-06 10:28:39
溫馨提示:易賢網小編為您整理了“Angular中的Promise對象($q介紹)”,方便廣大網友查閱!

這篇文章主要介紹了Angular中的Promise對象($q介紹),本文講解了Promise模式、Q Promise的基本用法、AngularJs中的$q.defferd等內容,需要的朋友可以參考下

在用JQuery的時候就知道 promise 是 Js異步編程模式的一種模式,但是不是很明白他跟JQuery的deferred對象有什么區別。隨著公司項目的進行,要跟后臺接數據了,所以決定搞定它。

Promise

Promise是一種模式,以同步操作的流程形式來操作異步事件,避免了層層嵌套,可以鏈式操作異步事件。

我們知道,在編寫javascript異步代碼時,callback是最最簡單的機制,可是用這種機制的話必須犧牲控制流、異常處理和函數語義化為代價,甚至會讓我們掉進出現callback大坑,而promise解決了這個問題。

ES6中Promise、angularJS內置的AngularJS內置Q,以及when采用的都是Promises/A規范,如下:

每個任務都有三種狀態:未完成(pending)、完成(fulfilled)、失敗(rejected)。

1.pending狀態:可以過渡到履行或拒絕狀態。

2.fulfilled狀態:不能變為其他任何狀態,而且狀態不能改變,必須有value值。

3.rejected狀態:不能變為其他任何狀態,而且狀態不能改變,必須有reason。

狀態的轉移是一次性的,狀態一旦變成fulfilled(已完成)或者failed(失敗/拒絕),就不能再變了。

代碼如下:

function okToGreet(name){

return name === 'Robin Hood';

}

function asyncGreet(name) {

var deferred = $q.defer();

setTimeout(function() {

// 因為這個異步函數fn在未來的異步執行,我們把代碼包裝到 $apply 調用中,一邊正確的觀察到 model 的改變

$scope.$apply(function() {

deferred.notify('About to greet ' + name + '.');

if (okToGreet(name)) {

deferred.resolve('Hello, ' + name + '!');

} else {

deferred.reject('Greeting ' + name + ' is not allowed.');

}

});

}, 1000);

return deferred.promise;

}

var promise = asyncGreet('Robin Hood');

promise.then(function(greeting) {

alert('Success: ' + greeting);

}, function(reason) {

alert('Failed: ' + reason);

}, function(update) {

alert('Got notification: ' + update);

});

Q Promise的基本用法

上面代碼表示, $q.defer() 構建的 deffered 實例的幾個方法的作用。如果異步操作成功,則用resolve方法將Promise對象的狀態變為“成功”(即從pending變為resolved);如果異步操作失敗,則用reject方法將狀態變為“失敗”(即從pending變為rejected)。最后返回 deferred.promise ,我們就可以鏈式調用then方法。

JS將要有原生Promise,ES6中已經有Promise對象,firefox和Chrome 32 beta版本已經實現了基本的Promise API

AngularJs中的$q.defferd

通過 調用 $q.defferd 返回deffered對象以鏈式調用。該對象將Promises/A規范中的三個任務狀態通過API關聯。

deffered API

deffered 對象的方法

1.resolve(value):在聲明resolve()處,表明promise對象由pending狀態轉變為resolve。

2.reject(reason):在聲明resolve()處,表明promise對象由pending狀態轉變為rejected。

3.notify(value) :在聲明notify()處,表明promise對象unfulfilled狀態,在resolve或reject之前可以被多次調用。

deffered 對象屬性

promise :最后返回的是一個新的deferred對象 promise 屬性,而不是原來的deferred對象。這個新的Promise對象只能觀察原來Promise對象的狀態,而無法修改deferred對象的內在狀態可以防止任務狀態被外部修改。

Promise API

當創建 deferred 實例時會創建一個新的 promise 對象,并可以通過 deferred.promise 得到該引用。

promise 對象的目的是在 deferred 任務完成時,允許感興趣的部分取得其執行結果。

promise 對象的方法

1.then(errorHandler, fulfilledHandler, progressHandler):then方法用來監聽一個Promise的不同狀態。errorHandler監聽failed狀態,fulfilledHandler監聽fulfilled狀態,progressHandler監聽unfulfilled(未完成)狀態。此外,notify 回調可能被調用 0到多次,提供一個進度指示在解決或拒絕(resolve和rejected)之前。

2.catch(errorCallback) —— promise.then(null, errorCallback) 的快捷方式

3.finally(callback) ——讓你可以觀察到一個 promise 是被執行還是被拒絕, 但這樣做不用修改最后的 value值。 這可以用來做一些釋放資源或者清理無用對象的工作,不管promise 被拒絕還是解決。 更多的信息請參閱 完整文檔規范.

通過then()方法可以實現promise鏈式調用。

代碼如下:

promiseB = promiseA.then(function(result) {

return result + 1;

});

// promiseB 將會在處理完 promiseA 之后立刻被處理,

// 并且其 value值是promiseA的結果增加1

$q的其他方法

$q.when(value):傳遞變量值,promise.then()執行成功回調

$q.all(promises):多個promise必須執行成功,才能執行成功回調,傳遞值為數組或哈希值,數組中每個值為與Index對應的promise對象

更多信息請查看IT技術專欄

更多信息請查看腳本欄目
易賢網手機網站地址:Angular中的Promise對象($q介紹)
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
国产精品多人| 国产精品三上| 国产日韩欧美精品| 欧美日本不卡高清| 久久久久久久久久久久久9999| 一本色道88久久加勒比精品| 亚洲电影视频在线| 韩国在线一区| 国产综合精品一区| 国产在线精品自拍| 国内精品视频666| 中文精品视频| 欧美制服丝袜第一页| 欧美va亚洲va日韩∨a综合色| 西瓜成人精品人成网站| 亚洲专区在线视频| 亚洲一线二线三线久久久| 欧美老女人xx| 欧美精品啪啪| 欧美午夜一区二区三区免费大片 | 亚洲精品国产日韩| 在线日韩av| 亚洲精品网站在线播放gif| 91久久精品美女高潮| 亚洲激情成人| 9l国产精品久久久久麻豆| 国产精品99久久久久久久vr| 亚洲综合999| 久久精品欧洲| 欧美成人一区二区在线| 欧美日韩在线一区二区| 国产精品男人爽免费视频1| 国产日韩精品久久久| 韩国av一区二区三区在线观看| 亚洲国产精品ⅴa在线观看| 亚洲人成77777在线观看网| 99精品99| 欧美资源在线| 欧美福利影院| 国产精品成人一区二区艾草| 国产一区av在线| 亚洲激情欧美| 欧美日韩视频在线| 国产精品视频99| 国内精品久久久久影院优| 亚洲国产精品欧美一二99| 亚洲天堂网站在线观看视频| 久久亚洲春色中文字幕| 欧美日韩一区二区三区免费| 国产亚洲一区二区三区在线观看 | 亚洲欧美日韩一区二区三区在线观看| 亚洲女女女同性video| 老巨人导航500精品| 欧美日韩在线亚洲一区蜜芽| 精品成人一区| 中文久久精品| 能在线观看的日韩av| 国产精品社区| 亚洲三级电影在线观看| 在线亚洲免费视频| 午夜国产精品视频免费体验区| 国产综合色一区二区三区| 午夜精品久久久久| 激情成人av| 欧美日韩一区二区三区四区五区 | 欧美精品综合| 一区二区三区在线视频观看| 欧美麻豆久久久久久中文| 欧美网站在线| 韩国v欧美v日本v亚洲v| 亚洲性线免费观看视频成熟| 免费欧美日韩| 精品51国产黑色丝袜高跟鞋| 亚洲一区二区三区免费视频| 欧美成人综合一区| 激情久久久久| 久久精品视频免费观看| 国产伦精品一区二区三区视频黑人 | 国产喷白浆一区二区三区 | 亚洲免费视频网站| 欧美激情一区二区三区蜜桃视频| 国内精品视频一区| 欧美一区二区三区精品| 国产精品乱码久久久久久| 一本色道久久加勒比88综合| 欧美激情亚洲视频| 亚洲黄页视频免费观看| 可以看av的网站久久看| 韩国女主播一区二区三区| 久久精品女人的天堂av| 国模精品一区二区三区| 久久99在线观看| 国产在线观看一区| 久久久久久色| 亚洲电影免费| 欧美日韩裸体免费视频| 一区二区高清| 国产精品久久久久久久app| 亚洲桃花岛网站| 国产精品视频999| 欧美一区二区三区免费大片| 国产精品毛片a∨一区二区三区| 午夜精品一区二区三区电影天堂| 国产九九视频一区二区三区| 欧美一区二区三区视频| 黑丝一区二区| 欧美精品在线看| 亚洲视频 欧洲视频| 国产精品丝袜白浆摸在线| 欧美一区二区在线视频| 影视先锋久久| 欧美日本国产精品| 亚洲永久在线观看| 国产日韩欧美成人| 麻豆精品一区二区av白丝在线| 亚洲人成在线免费观看| 欧美午夜不卡影院在线观看完整版免费| 一区二区三区.www| 国产精品夜色7777狼人| 久久精品国产91精品亚洲| 亚洲第一福利视频| 欧美日本在线视频| 欧美亚洲三区| 亚洲三级观看| 国产欧美一区二区在线观看| 久久一二三四| 亚洲婷婷综合久久一本伊一区| 国产亚洲成年网址在线观看| 美日韩精品视频免费看| 日韩午夜视频在线观看| 国产亚洲激情| 欧美日韩国产精品| 久久精品亚洲精品| 在线视频欧美精品| 亚洲成人影音| 国产精品网站在线播放| 美女视频黄 久久| 亚洲综合日韩| 亚洲精品久久久久久一区二区| 国产精品日韩专区| 欧美精品www| 久久综合九色综合欧美就去吻 | 午夜精品久久久久久久99樱桃 | 在线亚洲高清视频| 国产精品第13页| 久久精品盗摄| 亚洲欧洲三级电影| 欧美视频一区二区三区在线观看| 亚洲精品欧美一区二区三区| 在线中文字幕一区| 欧美日韩国产成人在线| 国产日韩欧美麻豆| 在线播放日韩| 老色批av在线精品| 亚洲一区在线播放| 亚洲国产欧美不卡在线观看| 国产视频在线观看一区| 欧美新色视频| 欧美日韩国产在线一区| 蜜月aⅴ免费一区二区三区| 久久av一区二区| 亚洲伊人第一页| 日韩亚洲精品视频| 亚洲国产精品热久久| 精品91在线| 国模一区二区三区| 国产精品一二三| 国产精品麻豆成人av电影艾秋| 欧美日韩精品一区二区天天拍小说| 免费精品视频| 美玉足脚交一区二区三区图片| 久久久久久亚洲精品中文字幕| 午夜欧美大片免费观看| 亚洲欧美视频一区| 亚洲一区三区电影在线观看| 中日韩高清电影网| 一区二区日韩| 在线性视频日韩欧美| 一区二区三区日韩精品视频| 一本色道久久综合亚洲精品不卡 | 国产精品毛片一区二区三区| 欧美日韩在线免费观看| 欧美理论电影在线播放| 欧美剧在线免费观看网站| 欧美**人妖| 欧美激情久久久| 欧美人成免费网站| 欧美色欧美亚洲另类七区| 欧美日韩在线播放一区| 国产精品草草| 国产一区二区欧美日韩| 一色屋精品视频在线看| 亚洲成人影音| 日韩视频免费观看高清在线视频| 一区二区三区视频在线| 欧美亚洲网站| 免费在线成人| 国产精品99免费看| 国产亚洲二区| 亚洲人午夜精品免费|