第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問答
課簽
筆記
評(píng)論
占位
占位

認(rèn)識(shí)$.Deferred的接口

大多情況下,promise作為一個(gè)模型,提供了一個(gè)在軟件工程中描述延時(shí)(或?qū)恚└拍畹慕鉀Q方案。它背后的思想我們已經(jīng)介紹過:

不是執(zhí)行一個(gè)方法,然后阻塞應(yīng)用程序等待結(jié)果返回,而是返回一個(gè)promise對(duì)象來滿足未來值。

這樣看來,Promise/A只是一種規(guī)范,Deferred可以看作這種規(guī)范的具體實(shí)現(xiàn),旨在提供通用的接口,用來簡(jiǎn)化異步編程難度,說白了就是:

一個(gè)可鏈?zhǔn)讲僮鞯膶?duì)象,提供多個(gè)回調(diào)函數(shù)的注冊(cè),以及回調(diào)列隊(duì)的回調(diào),并轉(zhuǎn)達(dá)任何異步操作成功或失敗的消息。

jQuery.Deferred()背后的設(shè)計(jì)理念來自 CommonJS Promises/A , jQuery.Deferred()基于這個(gè)理念實(shí)現(xiàn),但并沒有完全遵循其設(shè)計(jì), 它代表了一種可能會(huì)長(zhǎng)時(shí)間運(yùn)行而且不一定必須完整的操作的結(jié)果,簡(jiǎn)單的描述下規(guī)范中定義的“Promise”。

promise模式在任何時(shí)刻都處于以下三種狀態(tài)之一:

未完成(unfulfilled)
已完成(resolved)
拒絕(rejected)

CommonJS Promise/A 標(biāo)準(zhǔn)這樣定義的,promise對(duì)象上的then方法負(fù)責(zé)添加針對(duì)已完成和拒絕狀態(tài)下的處理函數(shù)。then方法會(huì)返回另一個(gè)promise對(duì)象,這樣可以形成“管道”風(fēng)格。

看看jQuery的Deferred源碼中對(duì)動(dòng)作接口的定義:

[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
[ "notify", "progress", jQuery.Callbacks("memory") ]

Deferred中定義的動(dòng)作是非常多的,抽象的看其實(shí)可以類似一種觀察者模式的實(shí)現(xiàn)。

觀察者模式中的訂閱方法:

  Done (操作完成)
  Fail (操作失敗)
  Progress (操作進(jìn)行中

觀察中模式中的發(fā)布方法:

  resolve(解決)
  reject(拒絕)
  notify(通知)

而且還提供了可以定義運(yùn)行時(shí)的this對(duì)象的fire,fireWith,所以擴(kuò)展了3個(gè)可以定義上下文的的接口:

  resolveWith
  rejectWith
  notifyWith

所以按照這樣的規(guī)范,我們的使用就應(yīng)該是這樣:見右邊代碼。

任務(wù)

?不會(huì)了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請(qǐng)驗(yàn)證,完成請(qǐng)求

由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求

加群二維碼

打開微信掃碼自動(dòng)綁定

您還未綁定服務(wù)號(hào)

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復(fù)提醒
  • · 賬號(hào)支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請(qǐng)您關(guān)注公眾號(hào)
關(guān)注后,及時(shí)獲悉本課程動(dòng)態(tài)

舉報(bào)

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費(fèi)2個(gè)積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?