国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

舉例詳解JavaScript中Promise的使用

2019-11-02 15:53:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

   這篇文章主要介紹了JavaScript中Promise的使用,特別jQuery的promise使用是當(dāng)下開(kāi)發(fā)圈中的熱門(mén),需要的朋友可以參考下

  摘錄 – Parse Java

文藝網(wǎng)名[www.la240.com/html2017/1/33/]
Script SDK現(xiàn)在提供了支持大多數(shù)異步方法的兼容jquery的Promises模式,那么這意味著什么呢,讀完下文你就了解了。

  “Promises” 代表著在javascript程序里下一個(gè)偉大的范式,但是理解他們?yōu)槭裁慈绱藗ゴ蟛皇羌?jiǎn)單的事。它的核心就是一個(gè)promise代表一個(gè)任務(wù)結(jié)果,這個(gè)任務(wù)有可能完成有可能沒(méi)完成。Promise模式唯一需要的一個(gè)接口是調(diào)用then方法,它可以用來(lái)注冊(cè)當(dāng)promise完成或者失敗時(shí)調(diào)用的回調(diào)函數(shù),這在CommonJS Promises/A proposal.大體講到了。比如,我想保存一個(gè)Prase.Object對(duì)象,這是個(gè)異步操作,在舊的回調(diào)范式中,你的代碼可能這樣寫(xiě):

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 object.save({ key: value }, { success:function(object) { // the object was saved. }, error:function(object, error) { // saving the object failed. } }); 在新的Promise范式中,同樣的代碼你可以這樣寫(xiě):   object.save({ key: value }).then( function(object) { // the object was saved. }, function(error) { // saving the object failed. });

  沒(méi)有多大的區(qū)別?那么有啥大不了的地方呢?好吧,promises的真正強(qiáng)大之處在于多重的鏈接,當(dāng)調(diào)用promise.then(func)時(shí)返回一個(gè)新的promise,它不會(huì)執(zhí)行直到上一個(gè)完成。但是這里有一種特殊的情況,如果我的回調(diào)通過(guò)then返回一個(gè)新的promise,那么通過(guò)then返回的promise將不會(huì)執(zhí)行,直到回調(diào)執(zhí)行完成。詳細(xì)細(xì)節(jié)請(qǐng)參考 Promises/A+,這是個(gè)復(fù)雜的規(guī)則,通過(guò)例子我們能更清楚的認(rèn)識(shí)下.

  假設(shè)你寫(xiě)了段登陸的代碼,查找對(duì)象然后更新它。在舊的回調(diào)范式中,你可以使用金字塔式的代碼完成:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 Parse.User.logIn("user","pass", { success:function(user) { query.find({ success:function(results) { results[0].save({ key: value }, { success:function(result) { // the object was saved. } }); } }); } });

  這看起來(lái)已經(jīng)很可笑,更可笑的是甚至沒(méi)有任何錯(cuò)誤處理。但是promise鏈?zhǔn)降慕Y(jié)構(gòu),使代碼看起來(lái)更舒服了:

  ?

1 2 3 4 5 6 7 Parse.User.logIn("user","pass").then(function(user) { returnquery.find(); }).then(function(results) { returnresults[0].save({ key: value }); }).then(function(result) { // the object was saved. });
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 郎溪县| 浦江县| 大埔区| 信宜市| 临江市| 富阳市| 黄梅县| 四川省| 遵化市| 江西省| 甘德县| 长葛市| 皮山县| 平山县| 扶风县| 肃南| 章丘市| 松溪县| 原平市| 张家界市| 肃北| 红桥区| 玉屏| 天祝| 鹤山市| 商水县| 栖霞市| 东乌珠穆沁旗| 蓬莱市| 古浪县| 章丘市| 九龙坡区| 丽江市| 莆田市| 保靖县| 荣成市| 兴业县| 高唐县| 伊宁县| 三台县| 和田市|